我无法区分TDD和BDD。有人可以举一个简单的例子来说明使用jasmine在javascript上下文中的区别吗?
答案 0 :(得分:7)
TDD(测试驱动开发) 流程从为每个功能开发测试开始。 TDD流程有一些步骤可循。只要开发人员有更多要添加的功能,这些步骤就会继续。
TDD的代码示例
suite('testName', function() {
setup(function() {
//create object (if need only)
});
test('should Return Name', function (){
//test function
});
BDD(行为驱动开发) 可以阅读几乎像一个句子,更专注于功能。
BDD的代码示例
describe("send Name", function(){
it("should Return Name",function(){
expect(sendName()).toEqual('ABC');
});
})
TDD与BDD
在执行TDD时存在一些问题
上述问题的解决方案是 BDD
TDD描述系统如何运作。
BDD描述最终用户如何使用系统。
答案 1 :(得分:2)
<强> TDD 强>
这意味着在开发软件之前编写测试,使软件适合测试(Red-Green Refactoring)。通常在创建软件之前通过编写单元测试来完成。
<强> BDD 强>
这与测试无关。这是关于对话的。
开发团队将与业务部门讨论需求,获取足够的信息,以便能够编写使软件开发更符合实际业务需求的方案。 (无论是Word文档还是测试,都没关系。)
业务,开发团队以及介于两者之间的所有人都应该理解所创建的场景。
BDD和TDD可以互补
我很抱歉没有在Jasmine中给出一个例子,但是我可以告诉你像Cucumber这样的工具会帮助你一路编写BDD风格,他们可以与Jasmine集成,开展业务可理解的前端和开发人员可以理解的后端。