Идея модульного тестирования методов ASP.NET MVC заключается в том, что вы можете запустить тест без использования любого запроса Http или ответа.
Предположим, у вас есть следующий метод:
public class MyController : Controller
{
public ActionResult MyAjax()
{
return Json(new { Test = "Test" });
}
}
Вы можете протестировать его с помощью этого кода:
[TestMethod]
public void MyTest()
{
MyControllercontroller = new MyController();
JsonResult json = controller.MyAjax() as JsonResult;
Assert.IsNotNull(json);
dynamic data = json.Data;
Assert.AreEqual("Test", data.Test);
}
Чтобы использовать динамическое ключевое слово, вы должны убедиться, что ваш тестовый проект может видеть внутренние компоненты вашего веб-проекта (это потому, что анонимные типы объявлены внутренними),Вы можете сделать это, добавив: [assembly: InternalsVisibleTo("YourTestProject")]
в файл AssemblyInfo.cs
вашего веб-проекта.