Тестирование реализации UnityBootstrapper завершилось неудачно из-за того, что Application.Current имеет значение null
Я разрабатываю приложение WPF, используя TDD, Prism и шаблон MVVM. Когда я пишу тест, чтобы убедиться, что контейнер Bootstrapper не является нулевым после запуска приложения, тест терпит неудачу, потому что Application.Current имеет значение null в методе InitializeShell
.
public class BootstrapperTests
{
[Fact]
public void BootstrapperServiceLocator()
{
// Arrange
var sut = new Bootstrapper();
// Act
sut.Run();
// Assert
Assert.NotNull(sut.Container);
}
}
Когда я запускаю приложение, все работает как положено; только при запуске теста я получаю нулевое исключение.
public class Bootstrapper : UnityBootstrapper
{
protected override DependencyObject CreateShell()
{
return ServiceLocator.Current.GetInstance<Shell>();
}
protected override void InitializeShell()
{
base.InitializeShell();
Application.Current.MainWindow = (Window) Shell;
Application.Current.MainWindow.Show();
}
}
Я хотел бы знать, как я могу избежать этой проблемы во время выполнения тестов.