カテゴリ: Kotlin 更新日: 2026/02/01

Kotlinでデータベースのテストを行う方法を徹底解説!初心者でもわかるRoomのテスト入門

Kotlinでデータベースのテストを行う方法
Kotlinでデータベースのテストを行う方法

先生と生徒の会話形式で理解しよう

生徒

「KotlinでRoomデータベースを使っているんですが、ちゃんと正しく動いてるかテストする方法ってあるんですか?」

先生

「もちろんありますよ。KotlinでRoomを使うときは、テストもとても大切なんです。今回は、初心者でもできるRoomデータベースのテスト方法をわかりやすく紹介しますね。」

生徒

「テストって難しそうですが、自分でもできるでしょうか?」

先生

「大丈夫ですよ。難しいコードは使わずに、1つずつ丁寧に説明していきます。」

1. Roomのテストってなに?

1. Roomのテストってなに?
1. Roomのテストってなに?

テストとは、プログラムが正しく動くかどうかを確認する作業のことです。KotlinでRoom(ルーム)という仕組みを使ってアプリの中にデータを保存しているとき、「ちゃんと保存できたかな?」「ちゃんと読み込めたかな?」というのを調べるためにテストをします。

特に初心者の方がやりがちなのは、「画面で見て確認する」だけです。でも、それだけでは本当に正しく動いているか分からないこともあります。そんなときに使うのが、自動で確認できるテストです。

2. テスト用のRoomデータベースを作ろう

2. テスト用のRoomデータベースを作ろう
2. テスト用のRoomデータベースを作ろう

通常のRoomデータベースはスマホの中に保存されますが、テストのときは本物のデータを壊さないように、テスト専用のデータベースを一時的に使います。

これを「インメモリデータベース」と言います。英語で "In-Memory"(インメモリ)と書きますが、「メモリの中だけに一時的に作るデータベース」という意味です。スマホには保存されません。


@get:Rule
val instantTaskExecutorRule = InstantTaskExecutorRule()

private lateinit var database: AppDatabase
private lateinit var userDao: UserDao

@Before
fun setup() {
    database = Room.inMemoryDatabaseBuilder(
        ApplicationProvider.getApplicationContext(),
        AppDatabase::class.java
    ).allowMainThreadQueries().build()

    userDao = database.userDao()
}

@After
fun tearDown() {
    database.close()
}

inMemoryDatabaseBuilderを使うと、実際のスマホには保存されないテスト用のRoomデータベースが作れます。

3. DAOのテストを書いてみよう

3. DAOのテストを書いてみよう
3. DAOのテストを書いてみよう

DAO(ダオ)というのは、データを読み書きするための入り口のようなものです。insertgetAllといった関数が用意されています。DAOが正しく動くかをテストすることで、データベースの処理が間違っていないか確認できます。


@Test
fun insertUserAndGetAll_returnsCorrectUser() = runTest {
    val user = User(id = 1, name = "太郎", age = 20)
    userDao.insert(user)

    val result = userDao.getAll()
    assertThat(result).contains(user)
}

このようにテスト関数を作って、「保存したらちゃんと取り出せるか」を確認しています。

4. テストを動かすには?

4. テストを動かすには?
4. テストを動かすには?

テストを書くと終わりではなく、実行する必要があります。Android Studio(アンドロイドスタジオ)を使っている場合、書いたテスト関数の左側にある「▶」ボタンを押すだけでテストが始まります。

うまくいった場合は「緑のチェック」、失敗すると「赤いバツ」が表示されます。テストが失敗したときは、何が間違っているのかメッセージが表示されるので、それを見て直していきます。

5. Roomのテストでよく使う便利な道具

5. Roomのテストでよく使う便利な道具
5. Roomのテストでよく使う便利な道具

KotlinでRoomをテストするとき、次のような道具をよく使います。

  • JUnit(ジェイユニット):テストの基本的な機能を提供する仕組み
  • assertThat:予想通りの結果になったか確認する関数
  • runTest:コルーチンの中でテストを書くときに使う関数
  • @Before@After:テストの前後で準備や後片付けをするアノテーション

これらを使うことで、しっかりとしたテストが書けるようになります。

6. 初心者が気をつけるポイント

6. 初心者が気をつけるポイント
6. 初心者が気をつけるポイント

はじめてRoomのテストを書くときは、次の点に注意しましょう。

  • 本番用のデータベースではなく、必ずinMemoryDatabaseBuilderを使う
  • テストの中でallowMainThreadQueries()を付ける(初心者向けには簡単に動かすため)
  • データベースは@Afterで必ずclose()して終了する

また、エラーが出たときは焦らずに、エラーメッセージを読んで対処しましょう。

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

7. 実行結果の例

7. 実行結果の例
7. 実行結果の例

テストを実行すると、結果が次のように表示されます。


Tests passed: 1 of 1 test – insertUserAndGetAll_returnsCorrectUser

これが表示されれば、テストは成功です。Roomを使った保存や読み込みが正しくできていることが分かります。

関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説