【发布时间】:2012-06-18 16:42:38
【问题描述】:
我正在使用 ASP.Net MVC 4 RC 的 ApiController,我正在尝试对 GET 方法进行单元测试。
此方法使用HttpRequestMessage 上的CreateResponse<T> 方法,但我不知道如何模拟它或使其正常运行。
方法的主体包含以下内容:
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 方法真正发挥作用?
【问题讨论】:
-
这似乎解决了同样的问题:stackoverflow.com/questions/10868673/…
标签: c# unit-testing asp.net-mvc-4 mocking