의존성 주입을 사용한 테스트
필수 의존성: io.ktor:ktor-server-di
코드 예제: server-di
의존성 주입(DI) 플러그인은 테스트를 간소화하는 도구를 제공합니다.
애플리케이션 모듈을 로드하기 전에 의존성을 오버라이드할 수 있습니다:
kotlin
fun test() = testApplication {
application {
dependencies.provide<MyService> {
MockService()
}
loadServices()
}
}위의 예제에서 loadServices()는 애플리케이션의 모듈을 부트스트랩하는 함수입니다. 예를 들어, 라우트와 서비스를 등록하는 함수이며 application.yaml의 modules 항목에 나열된 것과 동일합니다.
테스트에서 설정 로드하기
configure()를 사용하면 테스트에서 설정 파일을 쉽게 로드할 수 있습니다:
kotlin
fun test() = testApplication {
// 기본 설정 파일 경로에서 속성을 로드합니다.
configure()
// 오버라이드가 포함된 여러 파일을 로드합니다.
configure("root-config.yaml", "test-overrides.yaml")
}충돌하는 선언은 테스트 엔진에 의해 무시되므로 자유롭게 오버라이드할 수 있습니다.
