天天看點

如何加速和提升單元測試覆寫率

  1. 方法體盡量小,一入一出,不要使用變量傳遞。

    将private方法可以改成友好型,就可以同包下單獨方法進行用例測試。

  2. 用static方法,可以使用powermock,如不行,使用spring單例模式來避免static的使用。
  3. 盡量避免使用三目運算符,多IF條件判斷,可以使用枚舉+工廠類來規避,減少單元測試編寫難度。
  4. 盡量不要自己寫util方法,使用大基金會(apache、spring)、大廠(google、facebook、twitter、阿裡等等)、github星級比較高的提供的util方法,copy Util方法的同時,同時copy他提供的單元測試。
  5. 資料庫單元測試使用H2本地資料庫Mock來加快速度,資料庫中單元測試腳本要命中索引,不要進行一些無謂的性能開銷。

    各層之間使用MockITO進行模拟測試。

  6. Spring Controller測試可以使用WebApplicationContext、MockMvc來進行mock。
  7. 檔案資料等測試,加快速度可以一次性加入記憶體跑。
  8. activemq測試可以使用本地vm://localhost:61616來進行測試。
  9. 有些測試比較重要,但又影響速度(高并發,多線程,高計算,高頻通路redis,memcached等等),可以考慮自己跑完後,直接@Ignore或者拆分小方法,慢的部分Ignore,畢竟單元測試為了代碼品質,而不是為了覆寫率。