はじめに
こんにちは。最近Androidアプリ開発を始めたばかりの初学者です。今回は、アプリ開発でよく聞くJUnitについて、実際に手を動かして学んだ内容をまとめてみました。
・JUnitとは?
・テストの書き方は?
・Android Studioの注意点は?
など、初心者実体験ベースで説明していきます。
JUnitとは?
まず最初にそもそもJUnitとは
⇒JUnitは、JavaやKotlinなどで使える単体テスト(ユニットテスト)用のフレームワークです。
「関数が正しい出力を返すか?」「意図しない挙動をしていないか?」などを、コードでチェックすることができます。
バグの早期発見や保守性の向上につながるそうです。
環境
環境はAndroid Studioで、Kotlinでコードは書いています。
当たり前かもしれませんが、一応VScodeとかのIDEでもできるらしいけどAndroid Studioがいろいろ用意してくれてるから楽。
今回は簡単な足し算関数を用いてテストを試しました。
Add.kt
package com.example.junit_test
fun add(a: Int, b: Int): Int {
return a + b
}
Add_test.kt
package com.example.junit_test
import org.junit.Assert.assertEquals
import org.junit.Test
class MathUtilsTest {
@Test
fun testAdd() {
assertEquals(5, add(2, 3))
}
}
実行手順と注意(自分が詰まったとこ)
まず最初にディレクトリ構造に注意してください。
①com.example.(プロダクト名)/Add.kt
を用意してください。次に、
②com.example.(プロダクト名)(test)/Add_Test.kt
を用意してください。
(test)・・・ローカルテスト用、サクッと実行するとき。←今回はこっち
(androidTest)・・・実機やエミュレーターの時のテスト用。UIテストなど
実行結果
問題なくテストが通った時はこのようにtests passed:1と表示されます。
実行の際にはAdd_Test.ktのclass MathUtilsTestの横の実行ボタンを押してください。いつも通り関数横の実行ボタンでもOKです。
次にエラーになる実行をしてみました。実行結果として、
Expected :6
Actual :5
と親切に教えてくれています。
また、複数テストしたい場合にはtestAdd1(), testAdd2など名前を変える必要があります。
@Test
fun testAdd1() { ... }
@Test
fun testAdd2() { ... }
学び・感想
・AndroidStudioが至れり尽くせりで、とても便利だと改めて感じました。
・よくあるコーディングテスト、AtCoderとかの裏側の正誤判定は裏でこんなプログラムが回っているのかなぁと感じました。
・慣れない記事を書くことも楽しかったです。今後もいろいろと学んでいきたいと思います。
※本記事のコードはすべて筆者の個人学習目的で作成したものであり、GitHub連携や既存プロジェクトとは無関係です。