2012-01-03 6 views
0

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"]); 
     } 
    } 
+0

...);' '[考えると()]'メソッドに? ' –

+0

何らかの理由で_accountControllerがThenTheRegisterUserViewShouldBeDisplayedメソッドの中でnullです。この物語のための方法はありません。 – azamsharp

+0

Givenはありませんが、Givenを追加して新しく 'AccountController'をそれに移動すると、奇妙な動作が消えますか? –

答えて

1

_accountController静的解決の問題を作っていますか?このように、最初から新しいことをやっている?あなたは `_accountController =新しいAccountControllerを(移動した場合はどうなりますか、私は間違って何かを見つけることができません一見

private AccountController _accountController = new AccountController(); 
+0

はい、AccountControllerを保持します。ありがとう! – azamsharp

+0

私はそれがそれを静的にする方法を見ることができますが、それは必要ではありません。 specflowは同じインスタンスを使用するため、インスタンスメンバーはそのまま残す必要があります。問題に関連していることよりも、この状況には何かがあります。私はそのコードを使用し、たとえ静的でなくても問題は見えません。 –

関連する問題