2017-07-24 58 views
2

我需要編寫單元測試,1)web api方法有[HTTPPOST]方法類型和2)web api方法有路由屬性[api/Verification]。如何編寫單元測試的WEB API Http方法和自定義路由

任何人都可以建議,如何編寫測試來做到這一點。

我找到了使用http://www.vannevel.net/2015/03/08/50/進行web api路由驗證的一種方法,但找不到RouteAssert。

我正在使用MSTest編寫單元測試。

嘗試下面的方式找到描述符,因此,可以檢查路由和httpmethods,問題是,它給methodInfo null。

private HttpActionDescriptor GetAction(AccountAPIController controller, string name) 
{ 
    try 
    {   
     MethodInfo methodInfo = controller.GetType().GetMethod(name, new Type[] { controller.GetType(), controller.GetType() }); 
     return new ReflectedHttpActionDescriptor { MethodInfo = methodInfo, Configuration = controller.Configuration, ControllerDescriptor = new HttpControllerDescriptor()}; 
    } 
    catch (Exception ex) 
    { 

     throw; 
    } 

} 
+0

該博客正在使用第三方庫來測試路線。你基本上可以使用'HttpServer'進行內存中的集成測試。你的控制器是否有任何依賴性?顯示正在測試的控制器,如何試圖在[mcve]中對其進行測試,然後查看是否可以提供幫助。 – Nkosi

+0

上面添加了我試過的代碼。 – user3711357

+0

這是測試嗎? – Nkosi

回答

1

我找到了解決方案,通過反射來驗證類和方法的屬性。它最終運作。

謝謝。

相關問題