私は Cucumber を学習していて、2 つの完全に別個の機能に 2 つのステップがあり、それらが誤って同じ言葉で表現されている場合、Cucumber はそれらに対して 1 つのステップ定義のみを提案することに気付きました。これは、ステップ定義がグローバルであり、共有されることを意図しているということですか?
例
ビジネス アナリストのチームが、銀行部門と証券部門を持つ金融会社の仕様を作成しているとします。さらに、取引手数料を計算するために、2 人の異なる人がそれぞれの部門の機能を作成しているとします。
銀行員は次のように書いています。
Feature: Transaction Fees
Scenario: Cutomer withdraws cash from an out-of-netwrok ATM
Given that a customer has withdrawn cash from an out-of-netwrok ATM
When I calculate the transaction fees
Then I must include an out-of-netwrok ATM charge
証券マンが書いてる
Feature: Transaction Fees
Scenario: Cutomer places a limit order
Given that a customer has placed a limit order
When I calculate the transaction fees
Then I must include our standard limit-order charge
When 句は両方のシナリオで同じであることに注意してください。さらに悪いことに、二人ともこのシナリオを transaction-fees.feature というファイル (もちろん別のディレクトリにあります) に入れました。
Cucumber は、ステップ定義について次の推奨事項を生成します。
You can implement step definitions for undefined steps with these snippets:
this.Given(/^that a customer has withdrawn cash from an out\-of\-netwrok ATM$/, function (callback) {
// Write code here that turns the phrase above into concrete actions
callback.pending();
});
this.When(/^I calculate the transaction fees$/, function (callback) {
// Write code here that turns the phrase above into concrete actions
callback.pending();
});
this.Then(/^I must include an out\-of\-netwrok ATM charge$/, function (callback) {
// Write code here that turns the phrase above into concrete actions
callback.pending();
});
this.Given(/^that a customer has placed a limit order$/, function (callback) {
// Write code here that turns the phrase above into concrete actions
callback.pending();
});
this.Then(/^I must include our standard limit\-order charge$/, function (callback) {
// Write code here that turns the phrase above into concrete actions
callback.pending();
});
when 句は 1 回だけ提案されることに注意してください。
- これは、2 つのステップ定義ファイルの 1 つだけに入力する必要があるステップ定義が 1 つだけあればよいということですか?
- cucumber は機能ファイルを同様の名前の step_definition ファイルと関連付けますか? つまり、transaction-fees.feature を transaction-fees.steps.js に関連付けますか? すべてのステップ定義がグローバルである場合、ファイル/ディレクトリのセットアップは整理のためだけのものであり、実行環境に関する限り何の意味もないと誤解する可能性があります。
お時間を割いてご説明いただきありがとうございます。