javascript上下文中TDD和BDD之间的区别

时间:2017-01-26 06:17:57

标签: javascript jasmine tdd karma-jasmine bdd

我无法区分TDD和BDD。有人可以举一个简单的例子来说明使用jasmine在javascript上下文中的区别吗?

2 个答案:

答案 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集成,开展业务可理解的前端和开发人员可以理解的后端。