文檔討論了依賴注入,但並未真正顯示它是如何完成的。如何在ktor中注入依賴關係應用
文檔未完成以及和有一堆佔位: http://ktor.io/getting-started.html
我想在一個方法來創建我的主要功能,它接受的參數(這是我的依賴),但未能上試當我打電話給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
在使用withTestApplication
測試代碼我有類似如下的內容:(我需要模擬和注入參數)
@Test
internal fun myTest() = withTestApplication (Application::myMain)
如果我叫myMain
與參數上面withTestApplication
會失敗
更新:
的是起訴是,在我的請求處理中,我使用了一個依賴類,連接到外部其他Web服務並執行一些請求,我需要一種方法能夠在我的測試中注入它,因此可以對其進行存根/模擬並更改其行爲基於我的測試案例。
謝謝你的迴應,在我的情況下,我確實有一個與其他服務交互的類依賴關係,我如何注入那個(所以當我編寫我的測試時,我只是依賴/傳遞一個模擬實例而不是真正的) –