【发布时间】:2013-02-06 09:16:47
【问题描述】:
我喜欢 JavaScript BDD 工具 Jasmine,因为它可以高度灵活地定义故事。 Jasmine 中的故事可以这样构造,即先决条件的故事在依赖于先前故事的故事之前运行。这使得测试代码具有高度的可重用性和可读性。
代码复用示例:
describe("parent story", function() {
var a = 1;
beforeEach(function(){
a++;
});
it("should equal to 2", function() {
expect(a).toBe(2);
});
describe("child story"), function(){
beforeEach(function(){
a++;
});
it("should equal to 3", function(){
expect(a).toBe(3);
});
});
});
我对在 Java 世界中使用这个概念进行了一些研究,发现 Java 中最流行的 BDD 是 JBehave。然而,它似乎不像 Jasmine 那样灵活地为子故事重用之前故事中的测试代码。我看不出它如何像 Jasmine 示例那样将重用的变量从父故事传递到子故事中。
JBehave 的 GivenStories 概念要先于其他概念运行,但是我找不到如何将 GivenStories 中的状态传递给依赖它们的那些。
JBehave 能否像 Jasmine 一样出色地完成这项工作?如果没有,Java 中是否有另一个 BDD 框架可以做同样的事情?
【问题讨论】:
标签: java unit-testing jasmine bdd jbehave