Насмешка над контекстом с помощью Moq - PullRequest
1 голос
/ 03 ноября 2019

После отладки запроса я вижу, что тип передаваемого объекта имеет тип Microsoft.AspNetCore.Http.DefaultHttpContext, который я пытаюсь смоделировать здесь в модульном тесте, который по какой-то причине не может быть создан.

снимок экрана:
screenshot https://i.stack.imgur.com/Hag1d.png

 app.Run(async context =>
 {

 });

Модульный тест

var contextMock = new Mock<Microsoft.AspNetCore.Http.DefaultHttpContext>();

ошибка:
error

enter image description here

1 Ответ

1 голос
/ 03 ноября 2019

Не надо издеваться над этим классом.

Вы можете создать экземпляр 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;

Первый вариантпроще и требует очень мало настройки.

...