我的控制器在请求对象上使用CreateResponse
。因此,为了测试我的控制器,我需要在HttpConfiguration
上设置HttpRequestMessage
的实例,因为CreateResponse
期望此配置在那里。
如今,为了帮助测试,有各种属性的设置器,但在HttpRequestMessage
上只有GetConfiguration
方法,没有明显的设置器。
我该怎么做?
答案 0 :(得分:8)
使用以下代码:
...
ThingController controller = new ThingController(... dependencies ...);
// Fake the configuration.
//
var httpConfig = new HttpConfiguration();
controller.Configuration = httpConfig;
// Fake the request.
//
var httpRequest = new HttpRequestMessage(HttpMethod.Get, "http://mstest/things/1");
httpRequest.Properties[HttpPropertyKeys.HttpConfigurationKey] = httpConfig;
controller.Request = httpRequest;
注意从底部开始的第2行。偷偷摸摸。