2017-03-17 5 views
0

これで、きわめて新鮮なAngular2プロジェクトのe2eテストを探求しました。私たちはステップ定義をJSに書くことに決めました。私はかなりのステップ定義で一般的にしようとしています。 これは私が達成しようとしているものです:Cucumber + Gherkin:自然言語をbooleanに解析します

我々は

this.Then(/^I should see (.*) on the page$/, function(componentName, callback) { expect(element(by.id(componentName)).isPresent()).to.eventually.be.true; setTimeout(callback, 1000); });

を持って、私はまたの形で定義できるようにしたいと思います:

Then I should not see Results on the page

は、その特定を示すために要素は表示されません。それを行うためのエレガントな方法や、私が使うことのできるツールを組み込んだものもありますか?ドキュメンテーションとグーグルでは、説明にtrue/falseを含むものしか私に与えられませんでした。私はc'n'pが私たちのステップ定義をすばやく成長させ、このようなことを前もって見つけなければ、不必要にハードなメンテナンスをしてくれると感じています。 これは愚かな考えだと思ったら私を止めてください。

答えて

1

あなたのステップでキーワード 'not'をキャッチし、正しいものを条件としてステップインプリメンテーションに2つのパスを実装することができます。

しかし私はそうしないで、代わりに2つのステップを受け入れます。そうすれば、コードを読みやすくなり、エラーが発生しにくくなります。

私はステップをワンライナーにし、実行をヘルパークラスに委任することに熱心に取り組んでいます。ヘルパークラスには、正のケースと負のケースの2つの方法があります。

this.Then(/^I should not see (.*) on the page$/, function(componentName) { 
    isNotPresent(componentName); 
    }); 
として

this.Then(/^I should see (.*) on the page$/, function(componentName) { 
    isPresent(componentName); 
    }); 

と負の場合:あなたは

コードを再書き込みなど時間外に行うように見えるように、それはまた、物事を処理することができる、私はこのような何かを持ってしようとします

私はJavaScriptに慣れていないので、これはJavaScriptの方法ではない可能性があります。しかし、私は、潜在的な共通の詳細をヘルパーにプッシュし、GherkinとJavaScriptの間に必要なグルーコードを最小限に抑えることに熱心に取り組んでいます。

+0

これは合理的な中盤のようです。ありがとう! – jasper