問題タブ [gherkin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cucumber - シナリオの概要で自分のステップにどのように名前を付ける必要がありますか
次のようなスペックフローテストがいくつかあります。
2つのシナリオだけでなく、10の非常によく似たシナリオがあり、すべてステップのタイプがあるので、「シナリオの概要」を使用したいと思います。残念ながら、私は自分のステップを書き直すための読みやすい方法を思い付くのに本当に苦労しています。
現在、私はこれを思いついたが、不格好に見える:
私もこれを考えました、そしてそれはよりきれいですが、それはほとんど意味を伝えません
「する」、「しない」、「すべき」、「すべきではない」、「持っている」、「持っていない」などの概念をパラメーター化するためのより良い方法を持っている人はいますか?この時点で、読みやすいので、すべてを別のシナリオとして残すことを考えています。
ruby - Cucumber - この Gherkin シナリオからデータの重複を削除するには?
次の Gherkin シナリオがあります。
2 行目は、電子メール アドレスとパスワードをステップ定義に渡し、次にこれらの詳細を FactoryGirl ファクトリに渡します。
基本的に、このシナリオからこのデータの重複を削除する方法がわかりません。テーブルを使用することを考えましたが、これがどのように役立つかわかりません。これを行う方法についてアイデアはありますか? 前もって感謝します!
bdd - BDDで繰り返しを減らすGherkinの「OR」構文
これを達成する方法を知っている人はいますか、それとも良い考えだと思いますか。繰り返しを減らしながら人間の可読性を維持するために、Gherkin で OR スタイルの構文を使用する (できれば)。複数のOR文の組み合わせごとに句の組み合わせが展開されるケースを考えています。例えば
これは、それぞれ同じ与えられた 3 つのテストとして実行されますが、OR セットからの 1 つの When があります。これは、When 句のプレースホルダーを含むテンプレートを使用して達成できたと思いますが、これはより読みやすく、Given で OR を使用して nxm テストを生成できると思います。アウトラインでは、まだ nxm 行が必要です。
- これを行うより良い方法はありますか
- 明示的にコピーして貼り付ける方が良い方法ですか(メンテナンスが面倒になる可能性があると思います)
- 他のフレームワークはこれをサポートしていますか (FIT を使用するとカスタム テーブルを作成できると思いますが、これもオーバーヘッドのようです)
ありがとう。
bdd - シナリオの概要: 可能な値の数が制限されたプレースホルダー
私は BDD に比較的慣れていないので、シナリオの概要について質問があります。インターネットでサンプルを見ると、プレースホルダーは任意の値を取ることができるように感じます。ドメイン内の要素の数は制限されていません。以下に一例を示します。
<start>
たとえば、プレースホルダーは任意の数にすることができるため、値の数は無限です。
私の仕様では、4 つの状態 (計画中、進行中、一時停止、クローズ) のいずれかを持つ契約を処理する必要があります。私の仕様では、計画済みの契約を編集できると書かれていますが、残りの 3 つの状態のいずれかを持つ契約を編集することは許可されていません。
「計画された契約の更新」という名前のシナリオと、契約のステータスがプレースホルダーであるシナリオの概要を 1 つ書くと思います。
それは正しい方法ですか?1 つの明示的なシナリオと 1 つのパラメーター化されたシナリオ? それとも、可能性ごとに明示的なシナリオとしてシナリオの概要を記述する必要がありますか? インターネット上の例とは対照的に、契約のステータスは4つの可能な値によって制限されているため、わかりません.
selenium - Gherkinシナリオ(SpecFlow / BDD / Selenium)で「Given」を実装するにはどうすればよいですか?
BDDを適用し、SpecFlowとSeleniumを使用しています。合格基準はGherkinで指定されています。
与えられた節に関して質問があります。
例は...
- 私が注文の詳細ページにいるとすると
- 注文を送信するとき
- 次に、注文の概要が表示されます
したがって、「注文の詳細ページにいる場合」は、ログインして注文を送信する準備ができている必要があります。しかし、どうすればそのポイントに到達できますか?
関連する既存のSpecFlowステップがすでにある場合は、これらを(Selenium経由で)使用して適切なポイントに到達できます-このようなもの...
- 私が登録ユーザーであるとすると
- そして、私はログインページにいます
- 登録したユーザー名とパスワードを使用してログインします
- そして、私は新しい注文を作成します
- そしてXYZ製品を検索します
- そして、注文に製品を追加します
- そして、注文の詳細ページを選択します
- 注文を送信するとき
- 次に、注文の概要が表示されます
これらのすべてのステップを、「注文の詳細ページにいる場合」の下のステップコードに入れることもできます。
ただし、Givenを実装するためにSeleniumを使用する権利はありますか?または、UIを使用せずに、セッション/データベースに関連するすべての状態/データを設定する方法を見つける必要がありますか?
ここには正しいことも悪いこともないのではないかと思います。それは私たちにとって非常にうまく機能していると言わざるを得ませんが、私たちは常にアプローチを改善しようとしています。ですから、実際の経験をお持ちの方からのご意見をお待ちしております。
Stack Overflowがこのための適切なフォーラムであることを願っています(仕方がないのですが、そうではないと思います-もしそうなら、私を撃墜しないでください!)...
ruby-on-rails - キュウリでのオプションの引数の一致
キュウリでオプションの引数を実装するにはどうすればよいですか。
ステップ定義があります
によって引き起こされる
これらのいずれかによってトリガーできるように、ステップ定義を作成するにはどうすればよいですか
bdd - BDD機能を作成する場合、以前のユーザー操作を特定のステップまたはいつステップに入れる必要がありますか?
マルチステップのビジネスプロセスの要件を(ウィザードを介して)作成しようとしています。ある画面でのユーザーの操作によって、別の画面でオプションを選択できるかどうかが変わるシナリオはたくさんあります。
たとえば(私は実際のビジネスを覆い隠しましたが、ステップのプロセスと形式はほぼ同じです):
ただし、Gherkin wikiでは、次のことをお勧めします。
与えられたものでのユーザーインタラクションについて話すことは避けてください
しかし、彼らは例外を作り続けます:
ユーザーにログインします(対話なしの推奨事項の例外。「以前に発生した」ことは問題ありません)。
また、そのページには次のように書かれています。
Whenステップの目的は、ユーザーが実行する主要なアクションを説明することです
UIインタラクションが多い場合、Givenに属するものと、Whenに属するものは何ですか?
私の最初のシナリオでは、 select Use PD
UIの操作が必要です。これは、新しい修理注文を作成するためのウィザードの一部であるためです。ただし、PDフィルタが表示されるための前提条件であり、ユーザーが[技術者の選択]ページに入るとトリガーされます。
最初のシナリオはそれほど悪くないかもしれませんが、2番目のシナリオは問題を悪化させます。[検索]をクリックすると検索がトリガーされますが、そのページに移動するには、多くのUI操作を実行する必要があります。これらのインタラクションの一部はUse PD
、検索フィルターを表示するために選択する必要があるため、グロスオーバーすることもできません。ただし、これらのUIインタラクションは、シナリオの主要なアクションではありません。
c# - Specflow: 構成可能なステップが異なる同じシナリオ
機能があり、環境ごとに異なる方法で実行する方法を探していました。たとえば、ローカルでテストする環境と、リモート サーバーにアクセスする別の環境があるかもしれません。スコープ バインディングを使用してこれを実現できますが、シナリオを複製してから、各シナリオにタグを適用する必要があります。
例えば:
代わりに、シナリオが機能に 1 回だけリストされ、その後、ステップ定義の適切なフィルタリングを可能にするある種のグローバル タグを使用する方法はありますか?
ありがとう!
specflow - Specflowによって生成されたユニットテストにXunitTraitAttributeを追加する方法
私はXunitでSpecflowを使用していますが、必要なのは、(内部で)生成された単体テストをXunit.TraitAttribute
追加することです。それはGherkinとSpecFlowで可能ですか?
windows-phone-7 - WP7テストの向きを変更します
テストにはExpensifyを使用します。テストのために使用するのに最適なツールです。機能ファイルで電話の向きを変更する必要があります。それ、どうやったら出来るの?