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
稍后出现。 我该如何解决这个问题?
有几种选择:
- 在
Assert.AreEqual
之前,您可以插入Thread.Sleep(MaxTimeoutForEvent)
- 使用延迟断言。 在这个问题中可以找到一个例子
PS记得关于TestCleanup
🙂