编辑:语言/平台是 C# / .Net
我目前正试图填补我当前项目中的一个巨大的单元测试空白,并且诚然是 TDD 的新手,我发现自己对于如何去测试一些更关键的业务特性感到很困惑。
我选择了 Moq 并有足够的时间做简单的模拟,但是在我的应用程序的核心是一个相当大的、可怕的 COM 互操作层,我很难概念化如何适当地进行单元测试。COM 组件完全是第 3 方,因此无法修改,它实现了相当于处理电话呼叫的有限状态机。该组件通过一组非虚拟事件通知我的应用程序,我想以某些顺序对其进行测试以模拟状态更改,但是 Moq 不提供除虚拟事件之外的任何方法来执行此操作。
所以我对知识渊博的 TDDers/Mockists 的问题是:你将如何测试这种东西?
显然 TypeMock 支持这一点(以换取它自己的缺点),但我宁愿不使用它,原因是关于类型安全的各种原因以及我普遍认为它在我背后做一些狡猾的事情。