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 回答