【正社員】還元率83%【フリーランス】マージン一律5万円で案件をご紹介させていただきます。 詳細はこちら

【Android】<Kotlin>JUnit5でよく使われるアサーションまとめ

【Android】<Kotlin>JUnit5でよく使われるアサーションまとめ
すだ

みなさまこんにちは〜!
メモリアインクのすだです。

今回は、Androidアプリ開発におけるJUnit5を使ったテストにおいて
頻繁に使用されるアサーションをご紹介します。

この記事を読んでわかること…
・JUnit5でのテストにおける様々なアサーション

JUnit5を使用した基本的なテストの方法に関しては、以下の記事で詳しくご紹介しています。
ぜひ併せてご覧ください。

目次

環境

  • Kotlin (ver 1.9.0)
  • Android Studio (Giraffe | 2022.3.1 Patch 3)

アサーションとは?

アサーション(Assertion)とは、
テストの中で「期待する結果」と「実際の結果」が一致しているかを確認する処理です。

簡単に言うと、

  • 正しい結果なら テスト成功
  • 期待と違ったら テスト失敗

という判定をしてくれます!

JUnit5では、たくさんの便利なアサーションが用意されています。

assertEquals、assertNotEquals

テストコード例▼

@Test
fun `足し算が正しい`() {
    assertEquals(5, 2 + 3)
}

@Test
fun `違う値は異なる`() {
    assertNotEquals(5, 2 + 2)
}

assertEquals … 期待する値と実際の値が同じか確認する
assertNotEquals … 期待する値と異なるか確認する

第一引数に「期待する値」、第二引数に「実際の値」を書きます。

assertTrue、assertFalse

テストコード例▼

@Test
fun `条件が正しい`() {
    assertTrue(4 > 2)
}

@Test
fun `条件が間違っている`() {
    assertFalse(2 > 4)
}

assertTrue … 条件がtrueか確認する
assertFalse … 条件がfalseか確認する

引数に条件を書きます。

assertNull、assertNotNull

テストコード例▼

@Test
fun `値がnullである`() {
    val result: String? = null
    assertNull(result)
}

@Test
fun `値がnullではない`() {
    val result = "Hello"
    assertNotNull(result)
}

assertNull … 値がnullか確認する
assertNotNull … 値がnullではないか確認する

引数に処理の結果を書きます。

assertThrows、assertDoesNotThrow

テストコード例▼

@Test
fun `名前が空のときは例外が発生する`() {
    val exception = assertThrows(IllegalArgumentException::class.java) {
        userService.register("")
    }

    // 例外メッセージまで確認
    assertEquals("名前は必須です", exception.message)
}

@Test
fun `例外が発生しない`() {
    assertDoesNotThrow {
        val sum = 2 + 2
    }
}

assertThrows … 指定した例外が発生するか確認する
assertDoesNotThrow … 例外が発生しないか確認する

assertThrowsの引数には、発生せたい例外処理の型を書きます。
例外が発生した場合は、.messageでそのメッセージ内容まで確認できます。

assertDoesNotThrowは 単純に囲った処理を通して例外が発生しないかどうかを確認できます。

assertAll

テストコード例▼

@Test
fun `複数まとめてチェック`() {
    assertAll(
        { assertEquals(2, 1 + 1) },
        { assertTrue(5 > 3) },
        { assertNotNull("Sample") }
    )
}

assertAll … 複数のアサーションをまとめて実行する

複数まとめて実行し、すべてチェックできます。

assertArrayEquals

テストコード例▼

@Test
fun `ユーザーIDリストが正しい`() {
    val expected = arrayOf(101, 102, 103)
    val actual = repository.getUserIds()

    assertArrayEquals(expected, actual)
}

assertAll … 配列の中身がすべて一致するか確認する

上記の例では、getUserIds()で取得した配列データが
期待する配列データと一致するかどうかを確認しています。

まとめ

おつかれさまでした。いかがでしたでしょうか!

アサーションを使いこなすと、
「正しく動く」「間違ったときも検知できる」強くて信頼できるテストコードを書くことができるので
ぜひ実践してください!

すだ

技術者としてのキャリアパスを次のレベルへと進めたい皆様、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
を通じて、
自分の市場価値をさらに向上させてみませんか?

それではまた次の記事でお会いしましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

弊社テックブログをご愛読いただきありがとうございます。
当テックブログを運用している株式会社メモリアインクは、
【正社員】還元率83%
【フリーランス】マージン一律5万円で案件のご紹介
と、エンジニアの皆様に分かりやすい形で稼げる仕組みを構築し提供させていただいております。

コメント

コメントする

目次