C# - 为单元测试设置控制器请求的URL。

问题描述 投票:0回答:1

我正在写一个单元测试,在这个测试中,我需要设置传入请求的URL,以便在控制器的方法中评估URL。 我使用的是FakeItEasy和NUnit3。

下面是被测试的代码和相关部分。

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

我想把queryString设置为我在单元测试中指定的值。 谁能帮我举个例子代码? 被测系统是控制器。 我似乎只能找到Moq相关的代码。看起来很简单。

c# unit-testing controller nunit-3.0 fakeiteasy
1个回答
0
投票

你可以像这样给查询字符串绑定一个参数。

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

然后在你的测试中,调用 Login 方法,并将你想要的值添加到 returnUrl


0
投票

不需要使用FakeItEasy或NUnit来解决这个问题。 下面是解决我的问题的代码行。

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

将 "param=value "替换成测试所需的内容。

© www.soinside.com 2019 - 2024. All rights reserved.