我将如何模拟查询字符串

Mik*_*keW 7 mocking asp.net-mvc-3

在Moq中使用以下内容

public Mock<HttpRequestBase> Request { get; set; }
Run Code Online (Sandbox Code Playgroud)

我怎么能嘲笑这个请求[....]

(in controller)
var modelFromPost = Request["mymodel"]
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的

public class ContextMocks
{

    public Mock<HttpContextBase> HttpContext { get; set; }
    public Mock<HttpRequestBase> Request { get; set; }
    public RouteData RouteData { get; set; }


    public ContextMocks(Controller controller)
    {
        HttpContext = new Mock<HttpContextBase>();
        HttpContext.Setup(x => x.Request).Returns(Request.Object);

    }

}
Run Code Online (Sandbox Code Playgroud)

干杯!

nem*_*esv 6

您可以使用以下SetupGet方法模拟索引器:

ContextMocks.Request.SetupGet(r => r["mymodel"]).Returns(myModel);
Run Code Online (Sandbox Code Playgroud)