 すだ
すだみなさまこんにちは〜!
メモリアインクのすだです。
今回は、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エンジニアを目指すなら【ユニゾンキャリア】

自分の市場価値をさらに向上させてみませんか?
それではまた次の記事でお会いしましょう!




 
			






コメント