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); } 

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

有几种选择:

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

PS记得关于TestCleanup 🙂