Как вы тестируете свои действия ASP.Net MVC JsonResult? - PullRequest
5 голосов
/ 04 марта 2010

Я все еще выясняю некоторые тонкости, касающиеся модульного тестирования моего приложения ASP.Net MVC2 с использованием NUnit.

В целом, тестирование моих ActionResults, моделей, репозиториев и тому подобного является простым, но мне раньше не приходилось тестировать методы Ajax, и я хотел бы получить некоторые рекомендации о том, как мне лучше всего это сделать.

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 04 марта 2010

Тестирование действия контроллера, возвращающего JsonResult , не должно отличаться от тестирования других действий. Рассмотрим следующий сценарий:

public class MyModel
{
    public string Name { get; set; }
}

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return Json(new MyModel { Name = "Hello World" });
    }
}

И модульный тест (извините, это MSTest, у меня нет NUnit atm, но он должен быть довольно прямолинейным):

// arrange
var sut = new HomeController();

// act
var actual = sut.Index();

// assert
Assert.IsInstanceOfType(actual, typeof(JsonResult));
var jsonResult = (JsonResult)actual;
Assert.IsInstanceOfType(jsonResult.Data, typeof(MyModel));
var model = (MyModel)jsonResult.Data;
Assert.AreEqual("Hello World", model.Name);
0 голосов
/ 04 марта 2010

IMO, лучше не тестировать ваши методы Ajax (я имею в виду клиентские, контроллеры на сервере, которые вы можете легко протестировать), а тестировать пользовательский интерфейс клиента. Для тестирования интерфейса я рекомендую использовать Selenium RC или WatiN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...