Я пытаюсь сделать в основном то, что говорится в заголовке, чтобы протестировать мой API-контроллер, но у меня проблемы с поиском правильного пути, и я не могу позволить себе тратить на это слишком много времени. Вот мой код.
[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 мне не очень помогли.