【发布时间】:2012-03-05 21:57:47
【问题描述】:
在编写单元测试时,对于与单元交互的每个对象,我都采取了以下步骤(从我对 JBrains 的Integration Tests are a Scam 的理解中窃取):
- 在单元中编写测试以确保它向协作对象发送正确的调用和参数
- 在单元中编写一个测试,确保它处理来自协作对象的所有可能响应。这些响应都是模拟的,因此单元是单独测试的。
- 在协作对象中编写测试以确保它接受调用和参数。
- 编写测试以确保发回每个可能的响应。
当我决定重构一个在步骤 2 中模拟了响应的对象时,我的问题就出现了。如果我更改对象响应调用的方式,那么其他对象对该调用的所有测试都不会失败,因为它们有都被嘲笑以匹配旧风格。您如何使模拟与他们正在模拟的对象保持同步?对此有最佳做法吗?还是我完全误解了一些事情并且做错了?
【问题讨论】:
标签: unit-testing tdd