如何在Nunit中调用WPF Dispatcher?

Pri*_*aka 6 c# wpf nunit dispatcher nunit-mocks

我想测试一个呈现具有数据字段值的文本块的应用程序.渲染完成后,我想获得实际的宽度和实际高度.一切正常.当我尝试测试应用程序时,首先出现问题.我无法从测试项目中调用调度程序.

以下是代码.

this.Loaded += (s, e) =>
{
    TextBlock textBlock1 = new TextBlock();

    //// Text block value is assigned from data base field.
    textBlock1.Text = strValueFromDataBaseField;        
    //// Setting the wrap behavior.
    textBlock1.TextWrapping = TextWrapping.WrapWithOverflow;
    //// Adding the text block to the layout canvas.
    this.layoutCanvas.Children.Add(textBlock1);

    this.Dispatcher.BeginInvoke(DispatcherPriority.Background,
        (Action)(() =>
            {
                //// After rendering the text block with the data base field value. Measuring the actual width and height.
               this.TextBlockActualWidth = textBlock1.ActualWidth;
               this.TextBlockActualHeight = textBlock1.ActualHeight;

               //// Other calculations based on the actual widht and actual height.
            }
        ));
};
Run Code Online (Sandbox Code Playgroud)

我刚刚开始使用NUnit.所以,请帮帮我.

谢谢

Ste*_*ven 1

我之前没有使用过nUnit来编写单元测试,但这是VS单元测试的常见问题。最终可能发生的情况是,每个测试都使用不同的调度程序,而 WPF 要求您使用相同的调度程序。要解决此问题,请创建一个静态类来缓存调度程序,然后通过它调用所有内容。