は、ここで私は、私はあなたがこれを設定する方法を考え出すされて何をする必要があるか、問題は私がすると二回繰り返してるということですが、私はこれを回避する方法が表示されていないこのSpecFlow機能/シナリオを正しく設定するにはどうすればよいですか?
Feature: Register a new customer
As a user
I need to be able to register myself
so that I can place orders
Scenario: Register a new customer with Valid information
Given I fill in valid customer information
When I press submit
Then I should be notified that I'm registered
Scenario: Register a new customer with Invalid information
Given I fill in invalid customer information
When I press submit
Then I should be notified it was invalid
を持っているものです2つのシナリオで正しく、または私はこれを正しく見ていないのですか?
ここにステップ定義がありますが、これらのすべてを同じステップクラスで実行する必要があるため、私は正しいとは思われません。私の意見では正しく読まない。私は離れてこれらの2を破ると、自分のステップクラスに入れたとき、私はerorrを得る:
binding error: Ambiguous step definitions found for step 'When I press submit':
[Binding]
public class RegisterAValidCustomerSteps
{
private RegisterCustomerViewModel _registerCustomerVm;
[Given(@"I fill in valid customer information")]
public void GivenIFillInValidCustomerInformation()
{
// use the ViewModel to represent the User interacting with the View
_registerCustomerVm = new RegisterCustomerViewModel();
_registerCustomerVm.FirstName = "Mark";
_registerCustomerVm.LastName = "W";
_registerCustomerVm.Email = "[email protected]";
}
[Given(@"I fill in invalid customer information")]
public void GivenIFillInInvalidCustomerInformation()
{
// simulate possible invalid name by missing the Last Name
_registerCustomerVm = new RegisterCustomerViewModel();
_registerCustomerVm.FirstName = "Mark";
_registerCustomerVm.Email = "[email protected]";
}
[When(@"I press submit")]
public void WhenIPressSubmit()
{
_registerCustomerVm.Submit();
}
[Then(@"I should be notified that I'm registered")]
public void ThenIShouldBeAbleToPlaceOrders()
{
_registerCustomerVm.MessageText.ShouldBe("Success! Check your inbox for confirmation");
}
[Then(@"I should be notified it was invalid")]
public void ThenIShouldBeNotifiedItWasInvalid()
{
_registerCustomerVm.MessageText.ShouldBe("Failure! Last Name can't be blank.");
}
}
私の場合、実際には「私は登録名とメールアドレスを記入してください」、2 And文は「情報は有効です」、「情報は無効です」、「 Submit "を実行し、2 Then Thenステートメントを修正しますか?これらはすべてステップクラスの中にありますか? –
実際には、入力データを記述するspecflowテーブルを使って、「記入フォームを記入してください」というステップを指定することができます。しかし、私はむしろ、どんな種類のデータが入力されたか(有効か無効か)を記述する2つの異なるステップ(あなたが今のように)に行きたいと思います。コンテクストを準備した後、あなたは「私が登録フォームを提出すると、私はビジネスに近いと思います。そして2つのステップは、あなたが今持っているように。 –