Я просто участвую в модульном тестировании для моего asp.net mvc, когда я пришел, чтобы узнать о макетах и разных фреймворках, которые есть там сейчас.
после проверки SO, я обнаружил, что MOQ, кажется, легче всего подбирать. на данный момент я застреваю, пытаясь издеваться над Request.ServerVariables, как после прочтения этого сообщения, я узнал, что лучше абстрагировать их на свойство.
как таковой:
/// <summary>
/// Return the server port
/// </summary>
protected string ServerPort
{
get
{
return Request.ServerVariables.Get("SERVER_PORT");
}
}
Но мне сложно учиться правильно издеваться над этим. У меня есть функция ActionResult для домашнего контроллера, которая захватывает информацию о пользовательском сервере и приступает к созданию формы для захвата информации пользователя.
Я попытался использовать класс hanselman mvcmockhelpers, но я не уверен, как его использовать.
вот что я до сих пор...
[Test]
public void Create_Redirects_To_ProductAdded_On_Success()
{
FakeViewEngine engine = new FakeViewEngine();
HomeController controller = new HomeController();
controller.ViewEngine = engine;
MvcMockHelpers.SetFakeControllerContext(controller);
controller.Create();
var results = controller.Create();
var typedResults = results as RedirectToRouteResult;
Assert.AreEqual("", typedResults.RouteValues["action"], "Wrong action");
Assert.AreEqual("", typedResults.RouteValues["controller"], "Wrong controller");
}
Вопросы:
- На данный момент я все еще получаю null ошибка исключения, когда я запускаю контрольная работа. Итак, что мне здесь не хватает?
- И если я использую mvcmockhelpers класс, как я могу позвонить request.verifyall для обеспечения все издевательски настроены правильно?