私は、当社の自動支払い処理サービスを開発しています。私たちは、スペックの流れを実装しようとしているとの条件条件時にマルチパートのSpecFlowフックを実装するにはどうすればよいですか?
Scenario Outline: Stub matches NEXT oldest outstanding bill
Given I have a group with the following bills:
| Id | Due Date | Status | Amount Due |
| Bill A | 9/14/2011 | <Oldest Bill Status> | 1100.00 |
| Bill B | 10/14/2011 | Unpaid | 1200.00 |
| Bill C | 11/14/2011 | Unpaid | 1300.00 |
When a stub is received that matches 'Bill B'
And the Payment Amount is <Payment Amount>
Then the allocation result should <Allocation Result>
And Review should <Review>
Examples:
| Oldest Bill Status | Allocation Result | Review | Payment Amount |
| Reconciled | Allocate to Bill | not required | 1200.00 |
[When(@"a stub is received that matches '(.*)'")]
public void WhenAStubIsReceivedThatMatches(string billKeyName)
{
// Method
}
私は結果ステップを実行する前に、両方の条件を処理するためのフックを変更する方法を確認していないときに我々は成功した1のためにそれを行っています。
*私はあなたが理解できると思う(と説明する)理由は - 実際にはそれ以外のコードをすることができない可能性があります私はなぜわからない。これは、当社のビジネスルールで要求されているように、マトリックスとマトリックスを比較する有効な解決策のようです。与えられたものを書き換えて、それを単一のものに制限するときは、コードを再利用する能力と機能ファイルの読みやすさが低下します。私はwhen節のために複数の部分reg-exでこれを行うことができますが、キュウリのブログはこれをアンチパターンとみなしました。 – Chad
@Chadまあ、私が言及しているコードは複雑です。マトリックスからマトリックスへのルールは非常に複雑に聞こえますが、ガーキンテーブルでそれを手助けできますか?シナリオの確認例(https://github.com/cucumber/cucumber/wiki/Scenario-outlines) –
お支払い金額は実際には結果テーブルと査読ステータスとともにサンプルテーブルに表示されます。ビジネスルールは複雑ですが、これはビジネスルールを定義する最も簡単な方法です。私の考えは、いつ私は支払いの量が必要ではないテストのために設定されたときにいつの後に要求を実行し、再利用するときに、フックを使用してリクエストを設定することができます。これは不可能ですか? – Chad