javascript - 为什么 Jasmine 被称为 "BDD"测试框架,即使不支持 "Given/When/Then"?

标签 javascript jasmine cucumber bdd

在介绍Jasmine ,它说:

Jasmine is a behavior-driven development framework for testing JavaScript code.

我阅读了 BDD 的几篇文章,似乎我们应该使用“Given/When/Then”来定义“Scenario”,这就是“cucumber”所做的。但是在 Jasmine 中,我看不到任何这样的方法。

即使 Jasmine 没有这样的概念,我们还能称其为“BDD”测试框架吗?

最佳答案

Jasmine 不会阻止您使用 given-when-then,下面的示例显示了在使用 Jasmine 时可以使用 given-when-then 的两种方式。

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");
    });
});

找到适合您的风格。您应该确保测试描述有效地描述了您正在测试的内容。您可以使用 given-when-then 样式的句子作为一种工具,以确保您的测试描述准确说明所测试的内容。

关于javascript - 为什么 Jasmine 被称为 "BDD"测试框架,即使不支持 "Given/When/Then"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984182/

相关文章:

javascript - AngularJS - HTTP POST 异步回调未在指定的超时内调用

java - 如何使用 Rest-Assured 请求 POST API 发送 token 和正文值?

javascript - 使用 jquery 将自定义样式字符串应用于 div

javascript - 结合 angularJS 和 d3.js : Refreshing a plot after submitting new input parameters

javascript - 如何在foreach迭代中去掉这个{},需要去掉object

angular - Jasmine 规范中没有路由器错误的提供者

javascript - JS 正则表达式匹配句子

javascript - 用 Jasmine 测试 JS,有没有办法匹配传入对象的类型?

java - 如何通过 REST Assured 将大量数据输入到查询参数中

java - 如何限制控制流不应该来到After方法中以防出现异常