【发布时间】:2011-10-29 12:46:50
【问题描述】:
做BDD就是从上到下,所以我们先写top level feature的test。现在要设置测试,您通常需要设置一些模拟而不是真正的 deps。你怎么知道需要什么依赖,你需要什么样的服务?我无法弥补如何在这个级别上定义依赖关系。在经典的 TDD 自下而上,它就像将现有的 impl 重构为依赖对象一样简单。
BDD 和 mocking 是否意味着我们需要预先制作完整的依赖关系图并进行粗略设计?
那么重构呢?似乎没有地方可以将您的 impl 分解为依赖项,因为您已经定义了这些依赖项。
例如,我有一个定时缓存功能要实现。 我的测试应该是:
- 如果未缓存则通过存储调用返回值
- 如果缓存则返回值,不进行存储调用
- 如果超时,则通过存储调用返回值
这是否意味着我需要识别所有潜在的依赖项并准备好模拟?我应该验证从我的 xall 返回的值,还是只验证预期的依赖项调用?
【问题讨论】:
-
这里的 BDD 表示行为驱动开发,而不是二元决策图。 (这是为了澄清为什么我取消了agf的标签重命名。)
标签: refactoring tdd mocking bdd