У меня есть ResourceDictionary, включенный в мою область Application.Resources моего проекта WPF.Это
из App.xaml (в порядке этого SO ответа ):
App.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="MyDictionary.xaml">
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
В этом словаре у меня есть несколько стилей, включая стиль страницы:
MyDictionary.xaml:
<SolidColorBrush x:Key="PageBackgroundBrush"
Color="Black" />
<Style x:Key="PageStyle" TargetType="Page">
<Setter Property="Background" Value="{StaticResource ResourceKey=PageBackgroundBrush}" />
<Setter Property="Height" Value="Auto" />
<Setter Property="Width" Value="Auto" />
</Style>
MyPage.xaml:
<Page x:Class="MyProject.MyPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="250"
Title="Page"
Style="{StaticResource ResourceKey=PageStyle}"
>
<Grid>
</Grid>
</Page>
MyPage.xaml.cs
public class MyPage : Page
{
public MyPage()
{
// this part crashes during unit tests because 'PageStyle' was not found
InitializeComponent();
}
}
Эта настройка работает достаточно хорошо как при просмотре страницы в Studio, так и при запуске проекта..
Я использую Встроенные в Visual Studio инструменты Unit Test .Когда я пытаюсь выполнить модульные тесты для класса MyPage (который использует MyPage.xaml при запуске конструктора), мои тесты не проходят.MyPage.xaml использует стили, определенные в словаре, включенном в Application.Resources.Тесты не распознают PageStyle, потому что Application.Resources не был включен, когда начался модульный тест, и в результате страница не может быть создана.Как мне включить мой Application.Resources в мои юнит-тесты?В качестве альтернативы, есть ли лучший способ запуска модульных тестов для страниц и окон WPF?