使用BackgroundWorker时,测试项目调用以实例化Window挂起

时间:2013-10-04 21:04:20

标签: wpf testing automated-tests backgroundworker

我正在尝试为最近编写的WPF / C#应用程序设置测试套件。我没有使用任何类型的MVVM模式,我意识到这使得自动化测试变得更加困难,但这是当前的状态,我的老板不会给我额外的时间进行重写。所以我正在努力充分利用这种情况。

在我的测试项目中,我正在调用MainWindow() ctor。我在创建DoWork之前启动了BackgroundWorker方法,以便能够通过(Action)delegate通过窗口Dispatcher发送按键。但是,当我在调用bgWorker.RunWorkerAsync() ctor之前调用MainWindow时,ctor没有被执行(我在其中放置了断点和nada)。如果我删除了对RunWorkerAsync的呼叫,则ctor可以正常工作。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

以下是BackgroundWorker的实现。

IsVMBusy = true;

var worker = new BackgroundWorker();

worker.DoWork + =(o,ea)=>

   {

       //Do task here

    };

worker.RunWorkerCompleted + =(o,ea)=>

        {
            IsVMBusy = false;
        };
        IsVMBusy = true;
        worker.RunWorkerAsync();