我们正在我的公司开始一个新的绿地项目,并且已经决定我们将使用 Microsoft 的 Moles 框架来进行我们在单元测试中的所有模拟。理想情况下,我的经理不想引入任何其他 Mocking 框架,例如 NSubstitute 或 Moq 来使项目复杂化。但是我发现,由于 Moles 生成 Mocks 和 Stub 的性质,它不能很好地与重构工具一起使用。
例如,我们使用 resharper,如果我有以下接口,moles 将生成一个像这样的存根:
IMyInterface -> SIMyInterface
现在,如果我要将 IMyInterface 重构为另一个名称,例如:IMyNewInterface
然后在我的单元测试中,Stub 类显然不会被重构,因为它从根本上具有不同的名称。
我可以看到,一旦我们得到许多单元测试的排列组合,这将是一个大问题,重构将成为一场噩梦,而口头禅将是“不要改变任何东西!”
有没有人有类似的经验或知道可以处理 Moles 的重构工具?
感谢梅林和迈克。我的团队决定妥协并仅将 Moles 用于我们无法使用标准工具模拟的类型,然后将其他框架(例如 NSubstitute)用于其他所有内容。