我正在使用ASP.Net MVC 4 RC的ApiController,我試圖單元測試一個Get方法。如何嘲笑HttpRequestMessage CreateResponse <T>擴展方法
此方法使用HttpRequestMessage上的CreateResponse方法,但我不知道如何模擬它或使其正常工作。
方法體包含此:
MediaTypeHeaderValue header = new MediaTypeHeaderValue(versionedSmartBlock.ContentType);
var response = Request.CreateResponse<SmartBlock>(HttpStatusCode.OK, versionedSmartBlock, header);
在我的單元測試,我創建一個空HttpRequestMessage:
CallsController api = new CallsController(managerMock.Object, config, adapterFactoryMock.Object);
api.Request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/Initiate?ern=%2B44123456789");
var response = api.Get("+44123456789", null);
,但它只是產生一個InvalidOperationException:
請求不有關聯的配置對象或提供的配置爲空。
有沒有人有任何指示我如何配置HttpRequestMessage,以便CreateResponse方法實際上完成其工作?
這看起來像是解決了同樣的問題:http://stackoverflow.com/questions/10868673/asp-net-webapi-unit-testing-with-request-createresponse –