ストーリーを非常に柔軟に定義できる 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 で作成された状態を、GivenStories に依存するものに渡す方法がわかりませんでした。
JBehave は Jasmine と同じようにこの作業を行うことができますか? そうでない場合、同じことを実行できる Java の別の BDD フレームワークはありますか?