1
1
是,将模拟对象用作 其中一个 您的许多单元测试工具绝对是一项有价值的工作。 不过,它最适合 测试驱动开发 因为测试驱动了设计。当你开始 感受痛苦 对于紧密耦合的代码,因为您必须维护深度嵌套的结构,您知道是时候重构为更松散耦合的API了。 |
2
1
模拟解决以下问题:
|
3
0
这是没有权利的。模拟框架(如犀牛模型)可以做一些功能强大的事情。我个人的选择是,我喜欢滚动我自己的模拟对象。如果我觉得这很难,我会把它当作一种气味,认为我的设计出了问题。 当执行单元测试的设置非常困难或者有很多代码时,我确实会在遗留代码上使用mock。 我接受在使用模拟框架方面我可以学到更多的东西。 |
4
0
对于我当前的项目,大多数时候我仍然为我的单元测试编写存根对象。只有一次我真的感觉到需要一个模拟对象,我手工写了它。 我想建议您从实用主义的角度来看待这个问题:如果您需要大量的模拟对象,请考虑学习一个模拟框架(当然这也需要付出一定的代价),否则请使用存根对象或偶尔手写的模拟对象。 |
5
0
我不确定Rhinomocks是否具有相同的功能,但使用moq,您可以从对象层次结构中获得所需的内容,而无需实际创建它。 也就是说,如果你的方法接受了一个iuser,并且需要访问iuser.person.contactinfo.phonenumbers.businessphone,你不需要创建整个图形。您只需执行以下操作: var mockuser=new mock(); mockuser.setup(u=>u.person.contactinfo.phonenumbers.businessphone).returns(“555-1212”); 这可能是有价值的,但也可能导致糟糕的设计如上所述。 |
mg610 · 如何开始C++单元测试 2 年前 |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
shilin agre · 在Python中测试修饰函数 2 年前 |
SlipScout · Unittest只传递单个值,而不是获取多个值 2 年前 |
Alex · 从实际对象的实例返回默认模拟结果 2 年前 |