处理与Silverlight的Specflow异步

avi*_*tor 12 .net silverlight tdd bdd specflow

Silverlight Unit测试框架定义了一个处理异步调用的过程(从Microsoft.Silverlight.Testing.SilverlightTest派生测试类,添加异步属性,使用EnqueueXXX方法.)考虑SpecFlow在测试类和步骤之间的分离:

  • 是否可以使用这些工具来等待异步行为的测试中的Silverlight方法调用(例如进行Web服务调用)?
  • 如果他们不能,那么在SpecFlow测试文件中处理此行为的指导是什么?(也许使用在事件处理程序中跳过并等待它的AutoResetEvent?)

Jas*_*ver 1

我想每个看过并投票支持这个问题的人都在等待有人给出一个很棒的、优雅的答案,但看起来这不会发生在这里。为了帮助其他现在需要可用答案的人......

我对其他单元测试情况所做的就是使用 AutoResetEvent,就像您在问题中提到的那样:

AutoResetEvent MyAutoReset = new AutoResetEvent();
[TestMethod]
public void MyTestMethod()
{
   var MyItem.GetItem(x => 
      {
         // Return handler
         MyAutoReset.Set();
      });
   MyAutoReset.WaitOne(5000, false));
}
Run Code Online (Sandbox Code Playgroud)

显然,这种方法需要考虑一些事情,但它传达了这个想法。