2
我想單元測試一個Web API控制器。之前當單元測試一個標準的MVC控制器時,我已經能夠模擬HTTPContext/Request/User並通過設置控制器上下文來插入它們。但是,這不適用於Web API控制器(ControllerContext的構造函數顯然不接受Web API)。單元測試使用IPrincipal設置的ASP.net Web API
到目前爲止,我有以下設置請求對象。
HttpConfiguration configuration = new HttpConfiguration();
HttpRequestMessage request = new HttpRequestMessage();
controller.Request = request;
controller.Request.Properties["MS_HttpConfiguration"] = configuration;
這工作正常,請求對象是可用的。但是我無法找到任何設置Principal用戶的方法。我已經嘗試以下
Thread.CurrentPrincipal = //Set User
HttpContext.Current = //Set User
這兩者似乎都沒有工作。
使用硒或類似的設置用戶。你不能嘲笑一切。 – Ben
當你說「能夠模擬」時,你是否在使用模擬框架? – Mathieson
是的,我們使用Moq/NUnit。 – MindingData