Wil*_*uce 8 c# unit-testing xunit asp.net-core-2.0
我正在尝试为这种方法编写一些单元测试,但我无法弄清楚如何设置Request.具体来说,我需要设置Query和头属性Referer.
public IActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "Home");
}
var query = Request.Query;
StringValues returnUrlValue;
if (query.TryGetValue("returnUrl", out returnUrlValue))
{
var returnUrl = returnUrlValue.ToString();
var referer = Request.Headers["Referer"].ToString();
if (string.IsNullOrEmpty(returnUrl) && !string.IsNullOrEmpty(referer))
{
returnUrl = WebUtility.UrlEncode(referer);
}
if (Url.IsLocalUrl(returnUrl) && !string.IsNullOrEmpty(returnUrl))
{
ViewBag.ReturnUrl = returnUrl;
}
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
我知道在request进入控制器之前经过中间件,所以它不能作为参数传递给控制器.但是,Request控制器上的对象是readonly,也不能分配.因此,类似下面的内容将无法正常工作.
var controller = new LoginController();
controller.Request = new DefaultHttpRequest(new DefaultHttpContext())
{
QueryString = new QueryString("?returnUrl")
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |