【问题标题】:difference between TDD and BDD in javascript contextjavascript上下文中TDD和BDD之间的区别
【发布时间】:2017-01-26 06:17:57
【问题描述】:

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

【问题讨论】:

  • 似乎/TDD/.test('BDD') 可以完成这项工作。 ;-0

标签: javascript jasmine tdd karma-jasmine bdd


【解决方案1】:

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 描述最终用户如何使用系统

【讨论】:

    【解决方案2】:

    TDD

    这意味着在开发软件之前编写测试,使软件适合测试(红绿重构)。通常通过在创建软件之前编写单元测试来完成。

    BDD

    这与测试无关。这是关于对话

    开发团队将与业务部门讨论需求,获得足够的信息,以便能够编写使软件开发更符合实际业务需求的方案。 (无论是 Word 文档还是测试,都没有关系)。

    所创建的场景应该是业务、开发团队和中间的每个人都可以理解的,使用双方都同意的语言。

    BDD和TDD可以互补

    我很抱歉没有在 Jasmine 中提供示例,但我可以告诉您,Cucumber 之类的工具将帮助您一路以 BDD 风格编写,并且它们可以与 Jasmine 集成,使业务可以理解前端端和开发人员可以理解的后端。

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多