[英]Mocking a context using Moq
在调试请求时,我看到传递给的 object 类型是Microsoft.AspNetCore.Http.DefaultHttpContext
类型,我试图在单元测试中模拟它,由于某种原因它是不可实例化的。
截屏:
https://i.stack.imgur.com/Hag1d.png
app.Run(async context =>
{
});
单元测试
var contextMock = new Mock<Microsoft.AspNetCore.Http.DefaultHttpContext>();
无需嘲笑 class。
您可以创建DefaultHttpContext
的实例
HttpContext context = new DefaultHttpContext();
context.Request.Path = new PathString("path here");
//...
或者只是模拟HttpContext
是你想模拟特定的功能。
Mock<HttpContext> contextMock = new Mock<HttpContext>();
//...setup
var path = new PathString("path here");
contextMock.Setup(_ => _.Request.Path).Returns(path);
HttpContext context = contextMock.Object;
前者更简单,只需要很少的设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.