我正在尝试为最近编写的WPF / C#应用程序设置测试套件。我没有使用任何类型的MVVM模式,我意识到这使得自动化测试变得更加困难,但这是当前的状态,我的老板不会给我额外的时间进行重写。所以我正在努力充分利用这种情况。
在我的测试项目中,我正在调用MainWindow()
ctor。我在创建DoWork
之前启动了BackgroundWorker
方法,以便能够通过(Action)delegate
通过窗口Dispatcher
发送按键。但是,当我在调用bgWorker.RunWorkerAsync()
ctor之前调用MainWindow
时,ctor没有被执行(我在其中放置了断点和nada)。如果我删除了对RunWorkerAsync
的呼叫,则ctor可以正常工作。我在这里缺少什么?
答案 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();