编写单元测试以使用Caliburn启动WPF弹出窗口

时间:2014-02-19 12:57:32

标签: c# wpf unit-testing nunit caliburn.micro

我想为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窗口编写测试用例的链接将是一个优势。

谢谢

0 个答案:

没有答案