Q1 Controller 要測試嗎?
Logics in controller
1 | [] |
自問自答
我認為要,
但是對於 WebAPI 回傳的JsonResult或是ActionResult
需要轉形才能作驗証
可以考慮整合測試勝於單元測試,
Controller 的通常是面對 Client Side 的呼叫.
Q2 當 Controller 只有取資料的邏輯
No Logics in Controller
1 | public ActionResult Index() |
Q3 當 Service 只有取資料的邏輯
No Logics in Service
1 | public Member Get(long id) |
Q3.自問自答
我認為不要,
要測試商業邏輯,不要在意覆蓋率
Q4. 當 Service 只有取 Catch 資料的邏輯
No Logics in Service , just call another service
1 | public Member Get(long id) |
Q4.自問自答
同上,仍然不需要,
要測試商業邏輯,不要在意覆蓋率,
要注意的或許是CacheService.GetCacheData是不是有包測試 ?
一般來說,Cache 的功能很泛用,測試的報酬率很高
Q5. 承上,當邏輯存在 Func 參數之中?
Logics in Func
1 | public Member Get(long id) |
Q5.自問自答
暫時無解,
或許是這樣 Pattern 不適合測試,需要調整架構嗎?
為了測試多包成一個公開方法,反而失去匿名函數的彈性優點,
不在匿名函數內寫邏輯更不合理,待求解答
Q6.當邏輯在 DA 層或 ORM 的 Query 中要如何測試?
Logics in ORM
1 | 上略... |
Q6.自問自答
不適用單元測試,應該整合測試作包覆
Q7. 當邏輯在 MappingProfile 該如何測試?
Logics in MappingProfile
1 | protected override void Configure() |
Q7. 自問自答
要作測試,檢查欄位 Mapping 是否正確,
但實務上若重用性不高,寫 MappingProfile 不如直接在代碼內轉換.
可以少寫 MappingProfile 的測試.
待解答…
(fin)




















- 需要注意 CI Server 要有 Web Server 的 SSH Key - LINUX 複製資料夾語法 

