ステップ名でを明示的に使用せずに、シナリオのアウトラインの例を(カスタム)オブジェクトとして解析する方法を理解しようとしています。
Scenario Outline: Customer makes an appointment
Given The user enters details on the page
When The user submits the page
Then The appointment details are shown.
Examples:
| Reason | Firstname | Lastname | Email |
| A | John | Doe | [email protected] |
| B | Jane | Doe | [email protected] |
私は今、サンプル行をカスタムAppointmentオブジェクトとして解析する方法を見つけようとしています。
私はテーブルでCreateInstanceを見てきましたが、これは機能していないようです
[Given(@"The user enters details on the page")]
public void EnterDetails(Table table)
{
var appointment = table.CreateInstance<Appointment>();
driver.FindElement(By.Id("Firstname")).SendKeys(appointment.Firstname);
}
これを実行するとエラーが発生します
Message: TechTalk.SpecFlow.BindingException : Parameter count mismatch! The binding method EnterDetails(Table)' should have 0 parameters
これは予約クラスです
public class Appointment
{
public AppointmentReason Reason { get; set; }
public string Firstnam { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
}
Example行をAppointmentオブジェクトとして解析する方法を正しい方向に向けることができるのは誰ですか?
Give関数に引数を渡していないため、例外がスローされます。次のようなテーブルを渡すことができます。
Scenario Outline: Customer makes an appointment
Given The user enters details on the page
| Reason | Firstname | Lastname | Email |
| <Reason> | <Firstname> | <Lastname> | <Email> |
When The user submits the page
Then The appointment details are shown.
Examples:
| Reason | Firstname | Lastname | Email |
| A | John | Doe | [email protected] |
| B | Jane | Doe | [email protected] |
指定されたステップ内の山括弧はパラメーターです。この場合、テーブル内に配置されます。シナリオのアウトラインを使用しているため、引数は例の表から取得されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加