Kotlinのテストクラスとテストメソッドの命名規則を解説!初心者でも分かる単体テストの基本
生徒
「Kotlinでテストを書くとき、クラス名やメソッド名ってどうやって決めればいいんですか?」
先生
「とても大事なポイントですね。命名ルールを守ることで、テストコードが読みやすくなり、メンテナンスもしやすくなりますよ。」
生徒
「ルールって具体的にどういうものですか?」
先生
「それでは、Kotlinのテストクラスとテストメソッドの命名規則について、わかりやすく解説していきましょう!」
1. テストクラスの命名規則とは?
Kotlinで単体テストを書くときは、通常「クラス名+Test」という形式でテストクラスの名前をつけます。たとえば、UserServiceというクラスをテストするなら、テストクラスの名前はUserServiceTestにします。
これは「どのクラスをテストしているのか」が一目でわかるため、テストコードの整理がしやすくなるというメリットがあります。
命名の例:
Calculator→CalculatorTestLoginManager→LoginManagerTest
2. テストメソッドの命名規則とは?
テストメソッドでは、「何をテストするか」がわかる名前をつけるのが大切です。よく使われるパターンは次のとおりです。
- メソッド名_条件_期待結果(例:
add_twoPositiveNumbers_returnsCorrectSum) - should_期待結果_when_条件(例:
shouldReturnCorrectSumWhenTwoPositiveNumbersAreAdded)
英語で書くのは、国際的な開発現場で共通理解しやすくするためです。
ただし、日本語で理解したい場合は、コメントに日本語で説明を添えても構いません。
3. 実際のテストクラスとメソッドの例を見てみよう
ここでは、Calculatorというクラスのaddメソッドをテストする例を紹介します。
class Calculator {
fun add(a: Int, b: Int): Int {
return a + b
}
}
このクラスに対するテストコードは次のようになります:
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
class CalculatorTest {
@Test
fun add_twoPositiveNumbers_returnsCorrectSum() {
val calculator = Calculator()
val result = calculator.add(2, 3)
assertEquals(5, result)
}
@Test
fun add_negativeAndPositiveNumber_returnsCorrectSum() {
val calculator = Calculator()
val result = calculator.add(-2, 5)
assertEquals(3, result)
}
}
4. 命名ルールが大切な理由とは?
初心者の方が見落としがちですが、テストクラスやテストメソッドの名前は、あとでコードを読む人にとっての「説明書」のような役割を果たします。
たとえば、テストの実行結果に「add_twoPositiveNumbers_returnsCorrectSumが失敗しました」と出れば、どのケースのテストがダメだったのかがすぐにわかります。
また、大規模な開発では、チームメンバー全員が共通ルールに従って命名することで、保守性(あとから直しやすいこと)がぐんと上がります。
5. テストコードの配置場所とファイル構成も覚えよう
命名以外にも、テストコードの保存場所にもルールがあります。
src/main/kotlin:本番用のプログラムsrc/test/kotlin:テストコード
テストクラスは、本番コードと同じパッケージ構成で作るのが一般的です。たとえば、com.example.serviceのクラスをテストする場合は、テストクラスも同じcom.example.serviceパッケージ内に置きます。
6. 命名ルールのチェックポイント一覧
最後に、Kotlinでのテスト命名におけるチェックポイントをまとめます。
- ✅ テストクラス名は
〇〇Testとする - ✅ テストメソッド名は、テスト内容がすぐにわかるように書く
- ✅ メソッド名に
should〇〇When〇〇形式を使うと読みやすい - ✅ テストクラスの配置場所を
src/test/kotlinにする