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

Sub*_*eep 3 javascript tdd bdd jasmine karma-jasmine

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

Lak*_*kmi 7

TDD(测试驱动开发) 流程从为每个功能开发测试开始.TDD流程有一些步骤可循.只要开发人员有更多要添加的功能,这些步骤就会继续.

  • 写一个测试
  • 运行测试
  • 重构
  • 添加测试
  • 请参阅测试失败

TDD的代码示例

suite('testName', function() {
  setup(function() {
    //create object (if need only)
  });
test('should Return Name', function (){
            //test function
        });
Run Code Online (Sandbox Code Playgroud)

BDD(行为驱动开发) 几乎可以像句子一样阅读,更专注于功能.

BDD的代码示例

describe("send Name", function(){ 

   it("should Return Name",function(){ 
      expect(sendName()).toEqual('ABC'); 
   }); 

})
Run Code Online (Sandbox Code Playgroud)

TDD与BDD

在执行TDD时存在一些问题

  • 从哪儿开始
  • 多少需要测试
  • 理解测试失败的原因

上述问题的解决方案是BDD

TDD描述了系统的工作原理.

BDD描述了最终用户如何使用系统.