C# - Установить URL запроса контроллера для юнит-тестов - PullRequest
0 голосов
/ 09 мая 2020

Я пишу модульный тест, в котором мне нужно установить URL-адрес входящего запроса, чтобы оценить URL-адрес внутри метода контроллера. Я использую FakeItEasy и NUnit3.

Вот тестируемый код и соответствующая часть:

[HttpPost]
public async Task<IActionResult> Login(LoginViewModel loginViewModel)
{
...
   var queryString = Uri.UnescapeDataString(Request.Query["returnUrl"]);
...
}

Я хочу установить queryString на значение, указанное в моем модульном тесте. Может ли кто-нибудь помочь мне с примером кода? Тестируемая система - это контроллер. Я могу найти только код, связанный с Moq. Кажется достаточно простым.

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Вы можете просто привязать параметр к строке запроса следующим образом:

[HttpPost]
public async Task<IActionResult> Login(LoginViewModel loginViewModel, [FromQuery] string returnUrl)
{
}

И в вашем тесте вызовите метод Login со значением, которое вы хотите для returnUrl

0 голосов
/ 09 мая 2020

Для решения этой проблемы не нужно использовать FakeItEasy или NUnit. Вот строка кода, которая решила мою проблему:

_accountController.Request.QueryString = new QueryString("?returnUrl=value");

Заменено 'param = value' тем, что было необходимо для его тестирования.

...