在阅读了Martin Fowler的Mocks Are Not Stubs之后,我发现我一直在以"模仿者"的方式练习TDD.
但我想知道即使是在模仿者TDD,如果一个人可以嘲笑太远.
这是Python风格的伪代码中的更新示例:
def sync_path(self):
if self.confirm_or_create_connection():
self.sync(self.dirpath)
Run Code Online (Sandbox Code Playgroud)
confirm_or_create_connection()方法创建与服务器的连接.
我在两个测试中测试了一个与此类似的方法,这两个测试都模拟confirm_or_create_connection()和sync()(即使它们都是同一个类中的方法).在一个测试中,模拟confirm_or_create_connection()返回True,测试确认已调用sync(),另一个模拟confirm_or_create_connection()返回False,测试确认未调用sync().
这合理吗?或者我应该模拟confirm_or_create_connection()和sync()调用的对象?(我已经对这两种方法进行了其他测试.)
请不要通过解释我应该练习"经典"TDD来回答这个问题.这是另一个问题的答案:我应该练习模仿者还是经典的TDD?
该技术被称为"模拟对象",而不是"模拟方法".它鼓励将系统划分为易于组合的协作对象而远离程序代码的设计.目的是提高抽象级别,以便您通常通过编写对象来编程,而很少编写低级控制流语句.
归档时间: |
|
查看次数: |
1254 次 |
最近记录: |