2017-03-07 4 views
0

私はキュウリjsを使用しています 同じURL内にいくつかのスライドがあります。私の特徴として、テスターに​​URLを開いて同じURLに複数のシナリオを持たせたいと考えています:キュウリの背景をすべてのシナリオで一度実行するタグを提供するにはどうすればよいですか?

以下の解決策の問題は、すべてのシナリオでURLが再度開き、最初にスライドします。別のシナリオとして各スライドステップをテストすることはできません。

すべてのヘルプや提案感謝:例:

特集:評価スライドユーザーの旅 - 事前reqisite私は私が使用することができます理解してURL /評価/

Background: 
    Given I open the url "/valuation/" 

Scenario: Test valuation slide button 
    Given the element "valuationIntro" is visible 
    When I click on the button "valuationIntro.cta" 
    Then I expect that element "valuationSlide1" becomes visible 

Scenario: Test valuation autocomplete 
    Given the element "valuationSlide1.cta" has the class "invalid" 
    When I set "jk5 7kj" to the inputfield "valuationSlide1.autocomplete"   
    Then I expect that element "valuationSlide1.cta" does not have the class "invalid" 

を開きたい開発者としてタグを使うことはできますが、タグを使ってバックグラウンドを一度実行する方法は完全にはわかりません。

+0

最初のテストが途絶えたところで、2番目のテストを続けようとしているような音がします。これは悪い習慣であり、キュウリはあなたのためにそれを難し​​くするために最善を尽くします。各テストは独立していて、テストを実行することでシステムに副作用が残らないようにする必要があります。パフォーマンス上の理由から、あなたのバックグラウンドステップはもちろん、それが既に実行されているかどうかを個人的に保存し、後続の実行では何もしません。 – joniba

+0

ありがとう、バックグラウンドステップは、実行されているかどうかをどのように検出できますか? –

+0

個人的にはキュウリのステップ間でコードを共有するためにシングルトンを幅広く使用しています。シングルトンであるため、テスト実行中に任意の状態を維持できます。これはnodejsなので、コンストラクタをエクスポートしない限り、ほとんどのモジュールは実質的にシングルトンです。 – joniba

答えて

0
var executed = false; 

var myStepDefinitionsWrapper = function() { 
    this.Given(/^I open the url "([^"]*)"$/, function (url) { 
     if (!executed) 
      // do some work with url 
      executed = true; 
    }); 
}; 
module.exports = myStepDefinitionsWrapper; 

ポイントを作るだけで簡単です。私は状態でシングルトンを使用します。

+0

ありがとう、しかし、これは私の背景で私はURLを開いていると仮定します。それが実行されたときに、どのようにすべての '背景'を検出するのですか? –

+0

あなたが何を求めているか分かりません。コードを書くことなく、この問題を解決するための一般的な方法を探しているなら、私は知らないし、良いアプローチだとは思わない。 HTH。 – joniba

+0

ご意見ありがとうございます。私はそれが自動化されたテストで欠けているギャップを埋めていると思うことが起こります。キュウリが検査自体を記述するのに使用できない理由はありません。私はなぜそれが悪い考えであるか、「それはそのようには設計されていない」以外の良い議論を見ていない。だから何。そのように使うことができます。 –

関連する問題