我正在尝试尽可能无缝地在我的团队中实施 BDD/TDD。Team Build 的 Gated check-in 只支持 MSTest,Microsoft Pex 和 Moles 配合得非常好。对于 BDD,我对 MSpec 印象最深,MSMSpec T4 模板会将这些测试转换为 MSTest,但 MSpec 和 Moles 似乎不能一起工作。(请参阅:在处理 MSpec 中的匿名方法时是否有设置 [HostType("Moles")] 的解决方法?)
所以:
- MSTest 适用于单元测试,可与 Team Build 一起使用,但不适用于 BDD。
- 其他模拟框架可与 MSpec 和 MSTest 一起使用,但 Moles 正在升级为 Microsoft.Fakes 与 VS 11,并且我认为其他框架无法完成的事情。
- 我为 MSPec 找到的接近替代品(例如 NSpec)仅生成 NUnit 测试,而不生成 MSTest。
什么样的工具组合可以协同工作?
更新: SpecFlow 也不适用于 Moles,因为 TestMethods 在生成的代码中,我看不到修改代码生成器以包含必要的 HostType 属性的方法。接下来尝试 StoryQ。
更新 2:事实证明,扩展 SpecFlow 以与 Moles 一起工作并不难,所以我现在就这样做,但我仍然有兴趣听取意见。