Я пытаюсь сделать в основном то, что говорится в заголовке, чтобы провести тестирование моего контроллера api, но у меня проблемы с поиском надлежащего пути и не могу позволить себе потратить слишком много времени на это. Вот мой код.Как создать mock-запрос HTTP-сообщения с телом JSON с использованием Moq
[TestMethod]
public void Should_return_a_valid_json_result()
{
// Arrange
Search search = new Search();
search.Area = "test";
string json = JsonConvert.SerializeObject(search);
var context = new Mock<HttpContextBase>();
var request = new Mock<HttpRequestBase>();
request.Setup(r => r.HttpMethod).Returns("POST");
request.Setup(r => r.InputStream.ToString()).Returns(json);
context.Setup(c => c.Request).Returns(request.Object);
var controller = new UserController();
controller.ControllerContext = new HttpControllerContext() { RequestContext = context };
//more code
}
Последняя строка возвращает CS0029 Ошибка Не удается неявно преобразовать тип 'Moq.Mock System.Web.HttpContextBase' в 'System.Web.Http.Controllers.HttpRequestContext'.
Я также не уверен в синтаксисе Moq, который я должен использовать, другие вопросы, примеры и документация Moq не очень помогли мне.
Я знаю, что могу избежать Moq для этого примера, но все же хочу выяснить способ Moq – D3v