SpecFlowフレームワークを使用して作成された次のテストを実行しています。テストが「Then」に達したときに_accountControllerがnullです。どうして?SpecFlowとスコープの問題が発生したとき
[Binding]
public class RegisterUserSteps
{
private AccountController _accountController;
private ActionResult _result;
[When(@"the user goes to the register user screen")]
public void WhenTheUserGoesToTheRegisterUserScreen()
{
Console.WriteLine("When");
_accountController = new AccountController();
_result = _accountController.Register();
}
[Then(@"the register user view should be displayed")]
public void ThenTheRegisterUserViewShouldBeDisplayed()
{
Console.WriteLine("Then");
Assert.AreEqual("Register", _accountController.ViewData["Title"]);
}
}
UPDATE 1:
[Binding]
public class RegisterUserSteps
{
private AccountController _accountController = new AccountController();
private ActionResult _result;
[When(@"the user goes to the register user screen")]
public void WhenTheUserGoesToTheRegisterUserScreen()
{
_result = _accountController.Register();
}
[Then(@"the register user view should be displayed")]
public void ThenTheRegisterUserViewShouldBeDisplayed()
{
Assert.AreEqual("Register", _accountController.ViewData["Title"]);
}
}
...);' '[考えると()]'メソッドに? ' –
何らかの理由で_accountControllerがThenTheRegisterUserViewShouldBeDisplayedメソッドの中でnullです。この物語のための方法はありません。 – azamsharp
Givenはありませんが、Givenを追加して新しく 'AccountController'をそれに移動すると、奇妙な動作が消えますか? –