我对我的控制器进行了以下测试
[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 :(得分:4)
我倾向于使用ScenarioContext.Current["KeyName"]
,以便我可以在不同的类中定义步骤。有关更多详细信息和一些备选方案,请参阅specflow文档:sharing data between bindings