【发布时间】:2017-01-26 06:17:57
【问题描述】:
我无法区分 TDD 和 BDD。有人可以举一个简单的例子来说明使用 jasmine 在 javascript 上下文中的区别吗?
【问题讨论】:
-
似乎
/TDD/.test('BDD')可以完成这项工作。 ;-0
标签: javascript jasmine tdd karma-jasmine bdd
我无法区分 TDD 和 BDD。有人可以举一个简单的例子来说明使用 jasmine 在 javascript 上下文中的区别吗?
【问题讨论】:
/TDD/.test('BDD') 可以完成这项工作。 ;-0
标签: javascript jasmine tdd karma-jasmine bdd
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 描述最终用户如何使用系统。
【讨论】:
TDD
这意味着在开发软件之前编写测试,使软件适合测试(红绿重构)。通常通过在创建软件之前编写单元测试来完成。
BDD
这与测试无关。这是关于对话。
开发团队将与业务部门讨论需求,获得足够的信息,以便能够编写使软件开发更符合实际业务需求的方案。 (无论是 Word 文档还是测试,都没有关系)。
所创建的场景应该是业务、开发团队和中间的每个人都可以理解的,使用双方都同意的语言。
BDD和TDD可以互补
我很抱歉没有在 Jasmine 中提供示例,但我可以告诉您,Cucumber 之类的工具将帮助您一路以 BDD 风格编写,并且它们可以与 Jasmine 集成,使业务可以理解前端端和开发人员可以理解的后端。
【讨论】: