我在测试中有以下代码:
private void LoadIncomeStatementViewModel()
{
using (var evt = new AutoResetEvent(false))
{
EventHandler handler = (sender, e) => evt.Set();
_incomeStatementViewModel.Loaded -= handler;
_incomeStatementViewModel.Loaded += handler;
_incomeStatementViewModel.LoadDataCommand.Execute(null);
evt.WaitOne();
}
}
现在,如果我运行以下测试
[Test]
public void Test()
{
LoadIncomeStatementViewModel();
// do something
LoadIncomeStatementViewModel();
// do something
}
第二次调用 LoadIncomeStatementViewModel() 我在 EventHandler handler = (sender, e) => evt.Set();
当第二次重新运行该方法时,使用语句肯定已经重新初始化了 evt。我有一种感觉,这可能与 Resharper Test Runner (Nunit 2.7) 有关。