В настоящее время я пытаюсь понять MSpec, главным образом, чтобы изучить новые способы (T / B) DD, чтобы иметь возможность принять обоснованное решение о том, какую технологию использовать. Раньше я в основном (читай: только) использовал встроенный фреймворк MSTest с Moq, поэтому BDD для меня совершенно новый.
Я пишу приложение ASP.NET MVC и хочу реализовать PRG. В прошлый раз, когда я делал это, я использовал фильтры действий для экспорта и импорта ModelState
через TempData
, чтобы я мог вернуть RedirectResult
, и ошибки проверки все еще были там, когда пользователь получил представление. Я проверил этот сценарий, проверив две вещи:
а) Написанный мной ExportModelStateAttribute был применен (среди тестов для моего контроллера)
б) Что атрибут работал (среди тестов атрибутов фильтра действий)
Однако я понял, что в BDD я должен еще больше заботиться о поведении и еще меньше о реализации. Это означает, что я, вероятно, должен просто проверить, что состояние модели находится в tempdata, когда действие закончило выполнение - не обязательно, что это делается через атрибут.
Чтобы еще больше усложнить ситуацию, атрибуты не запускаются при вызове действия непосредственно в тесте, поэтому я не могу просто вызвать действие и посмотреть, выполнена ли работа.
Как мне определить/протестировать это в MSpec?