Fre*_*ind 15 javascript bdd cucumber jasmine
在介绍Jasmine时,它说:
Jasmine是一个用于测试JavaScript代码的行为驱动开发框架.
我读了几篇关于BDD的文章,似乎我们应该使用'Given/When/Then'来定义"Scenario",这就是"黄瓜"所做的.但是在Jasmine中,我看不到任何这样的方法.
即使没有这样的概念,我们仍然可以将Jasmine称为"BDD"测试框架吗?
小智 17
Jasmine并没有阻止你使用给定的时间,下面是一个示例,显示了在使用Jasmine时可以使用给定时间的两种方法.
describe("Given a string containing 'foo'", function(){
var someString;
beforeEach(function() {
someString = "foo";
});
describe("When I append 'bar'", function(){
beforeEach(function() {
someString += "bar";
});
it("Then the string is 'foobar'", function(){
expect(someString).toBe("foobar");
});
});
it("When I append 'baz' Then the string is 'foobaz'", function(){
someString += "baz";
expect(someString).toBe("foobaz");
});
});
Run Code Online (Sandbox Code Playgroud)
找到适合您的风格.您应该确保测试描述有效地描述了您正在测试的内容.您可以使用给定时间样式句子作为工具,以确保您的测试描述准确无误.
dia*_*ist 14
我将Jasmine描述为javascript的单元测试框架,它具有很多语法糖,因此我们可以将"测试"更多地编写为描述行为的规范.大多数情况下,我们使用Given,When,然后当我们用业务语言描述/指定系统的整体行为时.在描述系统的一个组件时,使用自然语言通常会带来更少的好处 - 编程语言可以更好地支持较低抽象级别所需的更多细节.
现在单元测试是BDD的一个基本部分,而jasmine以一种允许我们非常雄辩地指定行为的方式支持这一点,所以是的,它肯定是BDD测试工具/框架,即使它只针对较低的抽象级别.
黄瓜只针对更高的抽象水平.它的裤子在编写低级别规范时不会使它成为BDD测试框架(BDD协作工具).
一个有趣的观点是,要做BDD,你真的需要两种不同的测试工具,一种用于执行高级抽象,另一种用于执行较低级别的详细规范.用于不同任务的不同工具都是同一过程的一部分.
最后,GWT实际上只是场景编写的一个实现细节.它是一种差异化的方式