所以我有一节课,我打电话给MessageEngine
。这个MessageEngine
将有一个名为StartEngine
的公共函数。每隔X秒,引擎将轮询服务器A,转换结果,并发布到服务器B.我有服务器A和服务器B接口的模拟,这样我就可以隔离地测试MessageEngine
。但是,StartEngine
调用永远不会终止;这个想法是它永远存在。如何在单元测试中最好地捕获它(使用NUnit,如果重要)?我不想暴露MessageEngine
的内部,只是为了让它更具可测试性。
我的第一个想法是只调用StartEngine
,等待任意数量的时间,然后断言结果发布到服务器B的模拟。然后我可以调用类似StartEngine.Abort
的东西来关闭引擎。是否有更好的模式来测试这些行为?