gpt4 book ai didi

asp.net-mvc-3 - 模拟 Request.QueryString 用于单元测试并针对 View 进行断言

转载 作者:行者123 更新时间:2023-12-03 09:28:09 24 4
gpt4 key购买 nike

我有以下 Controller :

public class ResetController : Controller
{
//
// GET: /Reset/
private Models.ResetModel rm = new Models.ResetModel();

public ActionResult Index()
{
//Check that this has a query string that is containing in the database
//and has been done in the last 30 mins.
string qString = Request.QueryString["v"].ToString();

//if this is a good querystring
if (rm.CheckQString(qString))
return View();
else
return View("Index", "Home");
}

我现在需要创建一个单元测试,以确保如果在数据库中找到 Request.QueryString 值,则返回适当的 View ,但我无法这样做。这是我尝试进行的测试来检查这一点:

[TestMethod()]
public void IndexTest()
{
ResetController target = new ResetController();
var request = new Mock<HttpRequestBase>();
request.SetupGet(r => r.QueryString).Returns(HttpUtility.ParseQueryString("?v=0ocIqhOQkrBaCXRO96E4B5HcOCYgMfJYOpRdNU/yIEUmH2szuXXKU51Td6NzRxlk"));

var result = target.Index() as ActionResult;
Assert.IsNotNull(result);
}

有人可以帮我提出建议,以确保该 Controller 经过全面测试吗?

谢谢

最佳答案

这是一个迟来的答案,但如果将来有人出现这篇文章......请参阅这篇文章how would I mock a querystring

目标是隔离测试,以便它不依赖于数据库中的 QueryString 结果,而是依赖于提供的值。要在 Moq 中执行此操作,请在创建模拟上下文后使用 SetupGet 方法。希望这对某人有帮助!

关于asp.net-mvc-3 - 模拟 Request.QueryString 用于单元测试并针对 View 进行断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15881579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com