我想为WPF应用程序(Caliburn micro& autofac)编写测试。此测试的目的是显示单元测试用例的弹出窗口。我尝试使用独立的WPF窗口进行编写,它起作用了:
但是当我尝试将其集成到使用Caliburn micro& amp;的现有解决方案时autofac并包含字典和样式我遇到了一些问题:
public MyViewModelTest()
{
this.repository = new MockRepository();
var eventAggregator = this.repository.Stub<IEventAggregator>();
//Other dependencies
viewModel = new MyViewModel(eventAggregator, other dependencies);
GenerateDummyData();
}
[Test]
public void OpenMyViewModelTest()
{
var uiThread = new Thread(Show);
uiThread.SetApartmentState(ApartmentState.STA);
uiThread.Start();
// Wait for the UI thread to finish
uiThread.Join();
}
private void Show()
{
//TODO make a new window to test and uncomment it.
var fg = new MyView { Height = 500, Width = 500, DataContext = viewModel };
//var fg = new MainView { Height = 500, Width = 500, DataContext = viewModel };
fg.ShowDialog();
}
现在,如果我从单独的测试项目解决方案执行测试(不在视图,视图模型可用的UI项目中),我得到一个例外:
SetUp:System.BadImageFormatException:无法加载文件或程序集“ABC.UIAssemblyName,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。尝试加载格式不正确的程序。
如果我从WPF UI项目复制并运行测试,则会出现一个空窗口。
所以,我想知道我是否遗漏了一些东西。 我是否需要在测试中向WPF窗口明确提供样式资源,字典和图像等。
关于如何使用caliburn micro为WPF窗口编写测试用例的链接将是一个优势。
谢谢