Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ユニットテスト環境改善/improve-unit-test-environment

kiyoshi yamashita
January 18, 2024
300

 ユニットテスト環境改善/improve-unit-test-environment

2024/1/19 若手・学生サーバーサイドエンジニアLT会 ラクーンホールディングス x ゆめみ のコラボLT会
https://yumemi.connpass.com/event/301942/

kiyoshi yamashita

January 18, 2024
Tweet

Transcript

  1. Javaのユニットテスト環境が辛かった🥵
 - FWはSpring
 - テストの実行が遅い
 - 1000ケースしかないのに15分程度かかる
 - masterにmerge後テストを待たずにリリース... 


    - テストを書くモチベーションが湧かない
 - カバレッジが可視化されていないので達成感が無い
 - テストの網羅性を注目されていなかった
 - テスティングライブラリのVersionが古い
 - JUnit 4, JMockit 1.33
 - Java11の文法に対応していない
 - 複数の振る舞いをテストするときの記述量が増える

  2. JUnitのVersionアップ
 移行で辛かったポイント①
 - パッケージが変更されていた
 - org.junit.Test => org.junit.jupiter.api.Test
 - 一部機能が変わっておりコンパイルできない👼


    - 例外が投げられることのテストでは
 - @Test(expected = NullPointerException.class)が
 Assertions.assertThrows(NullPointerException.class
 根気よく空き時間を見つけて修正💪

  3. Mockitoの選定理由
 - JUnit5に対応している
 - 開発が今も続いている
 - 毎月リリースされている
 - 学習コストが低い
 -

    弊社の新卒研修で使われているので知っている人が多い
 - 日本語のドキュメントがある

  4. まとめ
 - JUnitのVersionをあげたことでテストの書きやすさ↗
 - 遅いテストを修正、キャッシュ済みのDIコンテナを使用
 - テスト速度↗(約15分⇒約6分)
 - カバレッジレポートをgitlab-pagesにホスティングさせた
 -

    MR時にカバーされていないコードを分かるようにした
 - テストへのモチベーション↗
 - まだまだ改善できる余地があるのでこれからもやっていき!