У меня есть две страницы /MyArea/Pages/Create.cshtml
и /MyArea/Pages/MyList.cshtml
. Поэтому я создаю сущность и заканчиваю ее return RedirectResult("MyList")
.
Это работает в браузере.
Но во время интеграционного теста (с использованием Microsoft.AspNetCore.Mvc.Testing
пакет вер. 3.0), когда я открываю страницу /MyArea/Create
и отправляю форму:
var createConfirmHttpResponseMessage = await httpClient.SendAsync(postRequest1);
Assert.IsTrue(createConfirmHttpResponseMessage.StatusCode == HttpStatusCode.OK);
Все это возвращает
{StatusCode: 404, ReasonPhrase: «Not Found», версия: 1.1, Content: System.Net.Http.StreamContent, заголовки: {Content-Length: 0}}
Объект был создан, и return RedirectResult("MyList")
был вызван
Сообщено сообщение с запросом: {Method: GET, RequestUri: 'http://localhost/MyList', Version: 1.1, Content: <null>, Headers: { Cookie: .AspNetCore.Antiforgery.... Cookie: .AspNetCore.Antiforgery....}}
Я вижу, что сообщение запроса неверно: RequestUri должен содержатьarea // localhost / MyArea / MyList,
Какой тип «текущего управления местоположением» я должен добавить к коду интеграционного теста, чтобы заставить httpClient «уважать» эту область?
PS Я мог бы написать это так return RedirectResult("/MyArea/MyList")
на стороне сервера, но теперь я хочу знать, как повторить поведение браузера в интеграционном тесте?