Сохраните тесты короткими, "атомарными". Протестируйте самое маленькое предположение в каждом тесте. Сделайте каждый TestMethod независимым для интеграционных тестов, я даже создаю новую базу данных для каждого метода. Если необходимо создать некоторые данные для каждого тестового использования метод "Init". Используйте насмешки для изоляции класса тестирование от, он - зависимости.
я всегда думаю, "каково минимальное количество кода, который я должен записать, чтобы доказать, что это работает на все случаи?"
Я думаю, вы можете добавить стиль
в ResourceDictionary
и объединить его с темой Aero следующим образом:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35,
ProcessorArchitecture=MSIL;component/themes/Aero.NormalColor.xaml">
</ResourceDictionary>
<!-- Adding the style to a resource dictionary -->
<ResourceDictionary>
<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Foreground" Value="Red" />
</Style>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Это должно дать ВСЕ ваши текстовые поля выделяют красный цвет переднего плана без необходимости явно указывать это в каждом окне и пользовательском элементе управления.
У меня была та же проблема, и я попробовал подход Оскара. Хотя, это вызвало какое-то странное поведение. В частности, стили не применялись к некоторым элементам управления, в то время как к другим элементам управления того же типа. И я не смог найти никаких существенных различий между этими элементами управления.
Я продолжил поиск решения и нашел его здесь: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/91718816-8674-4ad8-a3c8-ae283bebe224/
Оно все еще не идеально и не понятно, но работает, по крайней мере, для меня.
Вкратце, идею можно получить из следующего кода:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35,
ProcessorArchitecture=MSIL;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="ExtendedTextBoxStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Foreground" Value="Red" />
</Style>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource ExtendedTextBoxStyle}" />
</ResourceDictionary>
</Application.Resources>
Для удобства обслуживания и читаемости эти вложенные объекты ResourceDictionary могут переходить в отдельные XAML-файлы.