4

コントローラーの次のテストがあります

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

正常に動作しますが、グローバル/クラスレベルの変数を作成したくないため、見た目が良くありません。では、スペック フローでこれらの変数の代わりになるものは何でしょうか。大きなアプリケーションに入ると、単一ステップのファイルに多くのシナリオが含まれるため、混乱して管理が難しくなります。

前もって感謝します

4

1 に答える 1

4

ScenarioContext.Current["KeyName"]私は、さまざまなクラスでステップを定義できるようにするために使用する傾向があります。詳細といくつかの代替案については、specflow のドキュメント:バインディング間でデータを共有するを参照してください。

于 2013-06-19T09:02:37.497 に答える