問題タブ [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.
ruby-on-rails - きゅうりのガーキンを学ぶ/教える方法
ビジネスアナリストが、Gherkinを使用して、キュウリに優しい機能、シナリオ、および手順のすべての仕様を記述できるようにしたいと思います。
キュウリのgithubサイトで基本的な情報をいくつか読んだり、Googleで簡単に検索したりしましたが、技術者以外の人がGherkinを使用して包括的なBDDを作成できるようにするための推奨リソースがあるかどうかを知りたいと思いました(で作成されるキュウリテストの優先言語)。
ありがとう。
.net - Visual Studioで.featureファイルのGherkin構文を強調表示するにはどうすればよいですか?
デフォルトでは、Feature、Scenario、Given、When、Thenなどのキーワードは強調表示されません。これを可能にする既製のテンプレートはありますか?
cucumber - 機能を削除せずにspecflow(Gherkin)の機能を無効にするにはどうすればよいですか?
一部のSpecFlow機能(Gherkin構文を使用)があり、テストが実行されないように機能を一時的に無効にしたいですか?
これを行うために機能にマークを付けることができる属性はありますか?Cucumberで動作するものがSpecFlowでも動作する可能性があると思います。
cucumber - IronRuby を使用して Cucumber を実行できない
誰かがこれに対する答えを知っていることを願っています。IronRuby から Cucumber を実行していて、IKVM 例外が発生しています。スタック トレースは一番下にあります。RSpec は正常に動作します。
何か案は?
Array を java::util::List に変換できません (TypeError) C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/gherkin-2.1.5-universal-dotnet/lib/gherkin/ native/ikvm.rb:37:in `new'
C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/configuration.rb:29: in `parse!'
C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/main.rb:78:「構成」
C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/main.rb:43:in `execute!'
C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/../lib/cucumber/cli/main.rb:25:in `execute'
C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/cucumber-0.8.5/bin/cucumber:8
ruby-on-rails - きゅうり機能の「例」セクションを使用しようとすると問題が解析されます
このエラーメッセージをグーグルで検索することはできません
features / manage_hand_evaluator.feature:features / manage_hand_evaluator.feature:21でエラーを解析します。コメント、py_string、row、scenario、scenario_outline、step、tagのいずれかを期待するときに例が見つかりました。(現在の状態:ステップ)。(Gherkin :: Parser :: ParseError)
これが例セクションの設定です(現時点では他のシナリオはありません。これは「機能:」セクションの後にあります)
..。
また、これらの「Given、When、Then」行のステップ定義もすでに設定されています(、、、をテキストに置き換えて「例」セクションをコメントアウトすると、テストは正常に合格します)。したがって、ステップ定義は適切に設定されているようです。.featureファイルの内容に何らかの解析の問題があり、何が間違っているのか理解できません。
インストールされている関連する宝石:Gherkin(2.1.5)(2.2.0を試しましたが、私のバージョンのCucumberでは壊れます)Cucumber(0.8.5)Cucumber-Rails(0.3.2)Rails(2.3.8)
cucumber - jrubyでキュウリを使用する
私は自分の会社のイントラネットに取り組んでいます
- きゅうり0.8.5
- ガーキン2.1.5
そして、ruby1.8.7からjruby1.5.1に切り替えようとしています。
ただし、jrubyからキュウリを実行しようとすると、エラーが発生します。
これはb/c gherkin 2.1.5はネイティブ拡張であり、jrubyはそれを処理できないと思います。
さて、バージョンを更新してみたいのですが、これは保護されたイントラネット上にあるため、新しいソフトウェアのインポートはPITAであり、時間がかかります。
私が持っているソフトウェアをどのように機能させることができるかについて誰かが何か提案がありますか?適切な構成設定などがありませんか?
ruby-on-rails - 実行中の機能ファイルに応じてCucumberステップ定義をロードする方法
特定の機能(「login.feature」など)が実行されているときに、login_steps.rbのみをWebステップにロードするようにcucumberを変更したいと思います。他のステップファイルはロードしないでください。
IMOこれは、同じ手順を実行するのに非常に便利ですが、実行される機能の名前とはそれに応じて実装作業が異なります。
私にはほぼ100のシナリオがあり、ステップが高レベルのステップである場合、これは理にかなっていると思います。
何か案は?
ruby-on-rails - 補間を使用したRubyCucumberの複数行の引用符?
私はCucumberを使用してJSONをいくつかのAPIアクションに送信しています。ある例では、API呼び出しの前に構築されたオブジェクトのIDを知り、そのIDをに渡す必要があります。
私はこれをしたい:
"""
文字列は二重引用符で囲まれた文字列のように変数を補間しないため、これは機能しません。このI have already built a document
ステップで@document
オブジェクトが作成されるため、IDが何になるかは事前にわかりません。重要なのは、私はMongoDBとmongoidを使用しており、IDを手動で設定するという私の努力は実を結ばないことが証明されています。
これを達成するためのクリーンな方法はありますか?
環境:
cucumber - ガーキンスペックのステップ間の強い結合
私は自分のアプリを指定するためにspecflowを使用していますが、本当に悪いことをするのを防いでくれたので、本当に気に入っています:-)しかし、ステップ間の結合に問題があります:ステップでは、エンティティを返す必要があることをモックに伝えますが、別のステップでは、モックに同じエンティティを返すように指示しますが、別のプロパティを使用します。
このステップを見てください(以下のダレンの回答から盗まれ、変更されました):
こちらを参照してください。Guy オブジェクトから始めて、後でオブジェクトを変更します。これは、私がテストしているものです。
そのため、エンティティをモック リポジトリに配置し、別のステップでエンティティを取り出して再度配置します。ステップ間の高い結合と再利用性をどのように回避しますか?
もちろん、シナリオ クラスにローカル変数を保持し、すべてのエンティティをその変数に入れることもできますが、その場合は手順を結合します。
bdd - BDD シナリオには、実際のテスト データを含めるべきですか、それとも説明するだけですか?
典型的な CRUD シナリオを定義するときに、テスト データを指定するための 2 つのオプションがあることに気付きました。
オプション 1: 使用するデータを記述し、実装にデータを定義させる
オプション 2: 使用するテスト データを明示的に述べる
利点と欠点に関して、私たちが確立したことは次のとおりです。
オプション 1 は、「有効な名前」の定義が変更された場合を適切にカバーします。テスト データが複数の場所にあるオプション 2 を使用した場合、これに対処するのがより困難になる可能性があります。オプション 1 は、特に「無効なクレジット カード番号を入力した」などのシナリオの場合に、このテストのデータで何が重要かを明示的に説明します。また、実装よりも説明に関心があり、どういうわけかより抽象的でBDDを「感じ」ます。
ただし、オプション 1 では、再利用が難しい非常に特殊な手順を使用します。たとえば、「作成されたリージョンの詳細をページに表示する必要があります」は、おそらくこのシナリオでのみ使用されます。逆に、オプション 2 の「ページには次のフィールドを表示する必要があります」を実装して、他のシナリオで何度も再利用できるようにすることもできます。
また、オプション 2 は、「有効」などのより抽象的な用語を解釈する必要がなく、例によって何が起こっているかを確認できるため、よりクライアントフレンドリーに見えると思います。ただし、オプション 2 はより脆弱でしょうか? モデルのリファクタリングは、これらのテストを中断することを意味する場合がありますが、テスト データがコードで定義されている場合、コンパイラはモデルの変更に役立ちます。
ここに正解も不正解もありませんが、どちらを使用するかをどのように決定するかについて、人々の意見を聞きたいと思います。
ありがとう!