Как управлять глобальными переменными в Spec Flow
У меня есть следующий тест моего контроллера
[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"]);
}
}
это работает хорошо, но это не выглядит хорошо, потому что я не хочу делать переменные глобального / класса. Так что же может быть альтернативой этих переменных в спецификации потока. Потому что, когда мы заходим в большое приложение и файл с одним шагом содержит много сценариев, тогда это будет беспорядок и будет трудно управлять.
заранее спасибо
1 ответ
Решение
Я склонен использовать ScenarioContext.Current["KeyName"]
так что я могу определить шаги в разных классах. См. Документацию по спецификации: обмен данными между привязками для получения более подробной информации и некоторых альтернатив.