설명서는 종속성 삽입에 대해 설명하지만 실제로 수행 방법을 보여주지는 않습니다.ktor 응용 프로그램에서 종속성을 주입하는 방법
문서뿐만 아니라 완성과 장소 홀더의 무리가되지 않습니다 http://ktor.io/getting-started.html
내가 그것 (내 종속되는) 매개 변수를 허용하는 방식으로 내 주요 기능을 만들려고을하지만 테스트에 실패 옆에 withTestApplication
라고 전화하면됩니다. 응용 프로그램 코드를 살펴본 후 응용 프로그램에서 구성 개체를 허용한다는 것을 알았지 만 구성 개체를 변경하여 내부의 일부 종속성을 주입 할 수있는 방법을 모를 수 있습니다. withTestApplication
를 사용하여 테스트 코드에서
package org.jetbrains.ktor.application
/**
* Represents configured and running web application, capable of handling requests
*/
class Application(val environment: ApplicationEnvironment) : ApplicationCallPipeline() {
/**
* Called by host when [Application] is terminated
*/
fun dispose() {
uninstallAllFeatures()
}
}
/**
* Convenience property to access log from application
*/
val Application.log get() = environment.log
나는 아래에 비슷한 있습니다 : (. 내가 조롱하고 주입해야하는 매개 변수) 내가 매개 변수
myMain
를 호출하는 경우
@Test
internal fun myTest() = withTestApplication (Application::myMain)
은 위의 withTestApplication
이 실패를
은 다음과 같습니다 업데이트
그 요청 처리, 그 밖의 다른 웹 서비스에 연결하고 일부 요청을 않습니다 의존성 클래스를 사용하고 있습니다, 나는 내 테스트에서 이렇게 주입 할 수있는 방법이 필요합니다 내가 그것을 스텁/모의 그것의 행동을 변경할 수 있습니다 테스트 케이스에 따라
내 경우에는 다른 서비스와 상호 작용하는 클래스 의존성이 있습니다. 어떻게 그 중 하나를 주입합니까 (그래서 내 테스트를 작성할 때 종속성을 모방하고 모의 인스턴스를 전달합니다. 진짜 하나) –