Skip to content

依存関係注入(DI)を使用したテスト

必要な依存関係: io.ktor:ktor-server-di

コード例: server-di

依存関係注入 (DI) プラグインは、テストを簡素化するためのツールを提供します。

アプリケーションモジュールをロードする前に、依存関係をオーバーライドできます。

kotlin
fun test() = testApplication {
  application {
    dependencies.provide<MyService> {
      MockService()
    }
    loadServices()
  }
}

上記の例では、loadServices() はアプリケーションのモジュールをブートストラップする関数です。例えば、ルートやサービスを登録する関数であり、application.yamlmodules の下にリストされているものと同等です。

テストでの設定の読み込み

テストで設定ファイルを簡単に読み込むには、configure() を使用します。

kotlin
fun test() = testApplication {
  // デフォルトの設定ファイルパスからプロパティを読み込む
  configure()
  // オーバーライドを含む複数のファイルを読み込む
  configure("root-config.yaml", "test-overrides.yaml")
}

競合する宣言はテストエンジンによって無視されるため、自由にオーバーライドできます。