考虑到以下条件:
与使用extract& override +相比,使用ProfileM-API驱动的解决方案(如JustMock和TypeMock)有什么实际好处? RhinoMocks?有没有我不知道的情况,除了绕过私人/受保护,使用TypeMock / JustMock等真的需要?我特别欢迎一些人转换到其中一个产品的经验。
使用extract& override似乎解决了处理旧遗留代码时的所有问题,重构似乎很简单,并且引入错误的可能性似乎很小。利益是否减少了测试代码?更多美丽的课程,虚拟保护的东西更少?现在,我并不“理解”,虽然我知道首先单独测试私有方法非常有帮助,因为在这些旧的遗留代码库中,公共方法可能过于庞大。
如果您不知道摘录和覆盖是什么:请参阅here。
答案 0 :(得分:2)
框架之间存在许多差异,这些差异不考虑框架所依赖的技术。
例如:
Extract& Override的主要优点是它需要进行一些重构,如果你正在处理的代码被忽略,那么它就很有可能重复它并将其重构为更好的代码,而不仅仅是为了测试性。 / p>
使用隔离框架的主要优点是您不需要更改测试中的代码(如果它是一个大型代码库,可能需要很长时间才能重构它以实现可测试性)。此外,隔离框架不会强迫您进入特定设计,如果遗留代码与现有设计更好地匹配,这可能会有所帮助。在遗留代码中有用的另一个特性是交换在被测代码中创建的实例,通常重构实例化需要花费更多精力并且可以保存。最后一件事是伪造第三方代码 - 使用隔离框架,您可以在不使用包装类的情况下隔离不属于您的代码。
免责声明 - 我在Typemock工作