目次
前回、IntelliJ IDEAをインストールし、kotlinのプロジェクトを作成、DIコンテナであるKoinのインストールまで進めた。
今日は以下2つを進めていこうと思う。
- ユニットテスト
- モックライブラリ
ユニットテストを実行するには?
テストを作成後、IntelliJのエディタの行番号あたりに表示される緑の三角を押下すると実行できる。
テストを実行するとエラーが発生した
以下の様なエラーが発生した。Testクラスが見つからないとのこと。
Error:(6, 20) Kotlin: Unresolved reference: Test
build.gradle.ktsにテストライブラリの依存は書いてるんだけどなぁ
// Use the Kotlin test library. testImplementation("org.jetbrains.kotlin:kotlin-test")
こちらの記事を参考にFile
> Invalidate Cache
> Restart とすれば直った。
恐らく、依存関係を再インストールしたのだと思う。
ブレークポイントを掛けられる様にする
特になにも設定しなくてもできた。
ブレークを掛けたい行の行番号あたりをクリックすると赤い点が付く、その後ユニットテストをデバッグ実行すると、該当の行で処理がストップする。
モックライブラリ「MockK」を導入する
ユニットテストを書くにあたって、IOを伴う様な処理はモックに差し替えたい事がしばしばあるので、モックライブラリを導入する。
依存を追加する
dependencies { testImplementation("io.mockk:mockk:1.9.3") }
Buildタブのトンカチマークをクリックすると簡単に再ビルドされ依存関係も解決される
ユニットテストで、モックオブジェクトを作ってDIコンテナに登録するにはこんな感じらしい。
// ExampleRepositoryクラスのモックを作成 val mockAdapter = mockk<ExampleRepository>() // getメソッドの振る舞いを上書き every { mockAdapter.get() } returns "injected repository" // DIコンテナがモックを返す様に定義を上書き loadKoinModules(module { single(override = true) { mockAdapter as IExampleRepository } })
こんな感じでモックライブラリの導入まで進める事が出来た。
Webエンジニアをやっています
UX/UIデザインからプログラミング、DB設計、SEO、インフラ構築など幅広く対応してます
PHP/PHPUnit/Laravel/Vue/Nuxt/Docker/Terraform
ご連絡はTwitterのDMまで。
「kotlinでユニットテストとモックライブラリを使用する【kotlinの開発環境を構築する】」への1件のフィードバック