Как я могу создать модульный тест для тестирования RedirectToActionResult? - PullRequest
0 голосов
/ 29 апреля 2018

Я создал async Task<ActionResult> метод создания, в котором пользовательские данные вводятся с данными, сохраненными в таблице Azure. Мне нужно провести его модульное тестирование, чтобы показать, что оно перенаправляет на индекс

[HttpPost]
[ActionName("Create")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> CreateAsync([Bind(Include = "Id,StudentNo,Name,Surname,Email,Telephone,Mobile,Active")] Item item)
{
    if (ModelState.IsValid)
    {
        await DocumentDBRepository<Item>.CreateItemAsync(item);
        return RedirectToAction("Index");
    }

    return View(item);
}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Проверка фактического типа возвращаемого результата

public async Task ShouldRedirect()
{
    var controller = new Controller();

    var result = await controller.Create(item);

    result.Should().BeOfType<RedirectToRouteResult>();
}
0 голосов
/ 29 апреля 2018

Мне нужно выполнить юнит-тестирование, чтобы показать, что оно перенаправляет на индекс

Затем выполните модульное тестирование пользовательского интерфейса, как Jasmin, потому что тестирование серверной части не предназначено для этой причины, пока в тесте не существует конвейер MVC, и он выполняет весь этот маршрут, httpcontext и т. Д. Вообще не существует. скорее вам следует сосредоточиться на модульном тестировании бизнес-логики

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