繁体   English   中英

Mocking 使用最小起订量的上下文

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM