上一篇使用 [Unit Test] 小技巧-利用 Header 提高 Web API 可測試性,這篇的作法會讓被測目標物的職責變多,我們可以改用 Autofac 來改善這問題
[ASP.NET Web API 2] Web API OWIN Hosting 依照測試案例,使用 Autofac 注入不同依賴物件
- 1177
- 0
- ASP.NET Web API 2
- 2020-07-05
上一篇使用 [Unit Test] 小技巧-利用 Header 提高 Web API 可測試性,這篇的作法會讓被測目標物的職責變多,我們可以改用 Autofac 來改善這問題
當你想要聚焦,減少 Scenario 的 Step Definition 時,可以合併他們,提高 Scenario 的可讀性;但伴隨來的副作用就是細節被隱藏到 Step.cs 測試程式碼,從 Sceario 讀不出來,團隊內若都很了解細節,這樣倒是一個不錯的做法
當測試案例越來越多的時候,執行的時間會越來越長,這時候就可以靠並行測試 (Parallel Test),來縮短測試時間,只要確定測試案例之間沒有共用資源,就可以使用囉
Specflow 提供了 ScenarioContext.Current, FeatureContext.Current or ScenarioStepContext.Current 靜態成員讓我們使用,Specflow 3 之後它們已經被標記過時(Obsolete),為了以後相容性的還是別用了,那要改用甚麼呢...
最近在 marketplace,看到報表的畫面決定來研究看看
https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator
以往我們要測試桌面應用程式得透過 CodeUI,我對他的體驗不是很好,但現在可以改用 Appium+WinAppDriver 囉,連微軟也是這麼建議,立馬來試用看看
https://docs.microsoft.com/zh-tw/visualstudio/test/use-ui-automation-to-test-your-code?view=vs-2017
我的作法是在測試專案用OWIN把 WebApp 掛起來,測試案例便可直接打進 Web API,需要外部注入來改變內部狀態時,就不能像以前呼叫 Class,我想到了一些作法,比如組態擋、#if、Header,這裡就分享 Header 的做法
續上篇 https://dotblogs.com.tw/yc421206/2019/01/07/authentication_via_jwt-dotnet,這裡介紹 MS JWT 的使用方式
JWT 是一個老牌的套件,從 nuget 上來看他,甚至還比 System.IdentityModel.Tokens.Jwt 還要資深,使用起來也相當的簡單
以下是我的使用過程分享
之前有寫過用 TestServer 測試 Web API,[ASP.NET Identity] 使用 Microsoft.Owin.Testing 測試 OAuth Server 和 Web API,某些情境使用上會失效,比如 Redirect,後來又改用了 OWIN,就比較沒有問題了