Marcin Wiśniewski
09/16/2019, 6:31 PMjmfayard
09/16/2019, 6:42 PMclass TwilioService(...) : SendSms {
override fun send(message: String) = ...
}
interface SendSms {
fun send(message: String)
}
data class FakeSendSms(val messages: List<String>) : SendSms {
override fun send(message: String) = messages += message
}
Marcin Wiśniewski
09/16/2019, 6:45 PMjmfayard
09/16/2019, 7:24 PMMarcin Wiśniewski
09/16/2019, 8:09 PM@KtorExperimentalAPI
fun Application.main() {
install(Koin) {
modules(appModule)
}
routing {
val service: MyService by inject()
post("/") {
...
}
}
}
val appModule = module {
single { MyService() }
}
and my test:
class UserConfirmationTest : KoinTest {
val service : MyService by inject()
@test
fun `sample test`() {
startKoin {
modules(appModule)
}
declareMock<MyService> {
given(this.save()).willReturn()
}
// HOW TO CREATE POST REQUEST!
}
}