0
我試圖做的基本上是什麼標題說爲了單元測試我的API控制器,但我有問題找到正確的方法,並且無法承受支出這太多時間了。這是我的代碼。如何使用Moq創建使用JSON正文的模擬HTTP發佈請求
[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爲這個例子,但仍然想弄清楚莫克方式 – D3v