单元测试异步事件处理程序

时间:2014-11-27 21:23:29

标签: c# .net unit-testing

[TestInitialize]
public void Initialize()
{
    //DO Something
    async_eventhandler += the_eventhandler(async_eventhandler);
}

private void async_eventhandler
{
test = test2
    // test2 comes from client, after here TestMethod have to start
}

[TestMethod]
public void TestMethod1()
{
    Assert.AreEqual("test_test", test);
}

单元测试失败,因为这些方法是异步的。 字符串test为“NULL”,因为值test2稍后出现。我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

有几种选择:

  1. Assert.AreEqual之前,您可以插入Thread.Sleep(MaxTimeoutForEvent)
  2. 使用延迟断言。可以在此question
  3. 中找到一个示例

    P.S。请记住TestCleanup:)