我正在尝试为最近编写的WPF/C#应用程序设置测试套件。 我没有使用任何类型的 MVVM 模式,我意识到这使得自动化测试变得更加困难,但这是当前的情况,我的老板不会给我额外的时间来重写。 所以我正在努力充分利用这种情况。
在我的测试项目中,我调用了MainWindow()
ctor。 我在创建BackgroundWorker
之前启动了DoWork
方法,以便能够通过窗口Dispatcher
通过(Action)delegate
发送按键。 但是,当我在调用 MainWindow
ctor 之前调用 bgWorker.RunWorkerAsync()
时,ctor 不会被执行(我在其中放置了断点和 nada)。 如果我删除对RunWorkerAsync
的调用,则 ctor 可以正常工作。我在这里错过了什么?
下面是BackgroundWorker 的实现。
IsVMBusy = true;
var worker = new BackgroundWorker();
工人。DoWork += (o, ea) =>
{
//Do task here
};
工人。RunWorkerDone += (o, ea) =>
{
IsVMBusy = false;
};
IsVMBusy = true;
worker.RunWorkerAsync();