【发布时间】:2013-11-09 08:01:00
【问题描述】:
我正在尝试对 Web API 控制器进行单元测试。以前在对标准 MVC 控制器进行单元测试时,我已经能够模拟 HTTPContext/Request/User 并通过设置控制器上下文来插入它们。但是,这不适用于 Web API 控制器(ControllerContext 的构造函数显然不接受 Web API)。
到目前为止,我有以下设置请求对象。
HttpConfiguration configuration = new HttpConfiguration();
HttpRequestMessage request = new HttpRequestMessage();
controller.Request = request;
controller.Request.Properties["MS_HttpConfiguration"] = configuration;
这工作正常,请求对象可用。但是我找不到设置主要用户的任何方法。我已经尝试了以下
Thread.CurrentPrincipal = //Set User
HttpContext.Current = //Set User
看起来两者都不起作用。
【问题讨论】:
-
使用 Selenium 或类似的。你不能嘲笑一切。
-
当您说“能够模拟”时,您使用的是模拟框架吗?
-
是的,我们使用的是 Moq/NUnit。
-
你能指定你尝试测试的Api方法吗?您尝试测试的具体行为是什么?
标签: c# asp.net unit-testing asp.net-web-api