【发布时间】:2016-02-18 05:25:08
【问题描述】:
我正在从 TDD 思维转变为 BDD。我了解使用 BDD 是为了专注于确保软件的行为和业务目标得到满足。
让我感到困惑的是,如果我开始使用 BDD 代替 TDD,我似乎无法在如此低的级别上进行测试。例如,在使用 TDD 思维编写测试时,我可能会测试属性是否已附加到范围:
it('should attach properties to scope', function () {
expect(MainCtrl.items.length).toEqual(1);
});
在这样做时,另一个开发人员知道对范围的分配是预期的,并且需要将来使用,从而在他们删除分配或更改默认值等情况下为他们节省一些调试时间。
此示例未定义行为,因此不能视为 BDD。当然,我可以重写测试描述,使其更加面向行为,例如,“当页面加载时,设置属性以供以后使用,以便用户可以这样做……”但这似乎太抽象了。
同时使用 TDD 和 BDD 是否已完成?是否有 BDD 可用于定义项目参与方(包括非技术方)的行为以及专门为开发人员定义的 TDD?
【问题讨论】: