單元測試的藝術二版 in java

單元測試的藝術

附上github連結:https://github.com/ryanGTR/art-of-unit-test-in-java

why

最近想好好學習「遺留系統」重構的方法,由於我是JAVA programmer,所以嘗試使用 Junit 5 與mockito 3 好好練習一下書中的範例程式。

how

其實一開始想要好好寫的時候有發現不容易學習的地方,我不夠熟悉Junit與mockito,所以找了Udemy 上找了Learn Java Unit Testing with Junit & Mockito in 30 Steps 這門課學習一些基本知識與範例,蠻推薦的(不過講師非英美人),後續再花點時間學習最新版的 junit與mockito的API做調整就好了。

這次練習最大的收穫是,好像終於稍微分得清楚 stub 與mock,真心覺得這個有點難克服,mockito的使用上是還蠻難區分出來的(mockito根本沒有stub這個詞呀!)

Stub是控制回傳值,Mock是關注驗證方法,突然明白書內說專案大部分專案上都是用Stub居多(但是在寫心得的我還是有點心虛)

我是有上91哥的「針對遺留代碼加入單元測試的藝術」,上課內容也是與單元測試有強烈關係,非常推薦,很多觀念與實務上會遇到的問題老師在這門課會說明很多,但是最推薦老師的line群啦!這門課需要發問很多東西,老師會常常回line的問題(感動)

Conclusion

建議的學習策略大致上就是

  1. junit
  2. mockito (推一下 Learn Java Unit Testing with Junit & Mockito in 30 Steps
  3. 單元測試的藝術
  4. 91的「針對遺留代碼加入單元測試的藝術」(必上)

推薦一下額外的補充資料

  1. The Art of Unit Testing, 3rd Edition(沒錯!3版用nodejs,有機會再看能不能翻成java版)
  2. Effective Unit Testing(簡中:有效的單元測試) 這本在講說什麼樣的單元測試是不好的
  3. Dinesh Varyani 的 mockito 3 教學(這個我沒有看,但是他有教Stubbing Void Method的方法,我會找時間快速看完)