【发布时间】:2020-11-13 03:14:41
【问题描述】:
我有一个控制器类:
@Controller("/x")
class Controller {
@Get
fun index(): String {
return "test test"
}
@Post
fun dopost (userid) = executelogin(login.userId)
}
这个控制器依赖于下面的 executelogin 方法:
fun executelogin(userid) =
do things
如果我想编写一个单元测试,我将如何使用依赖注入来引入一个版本的 executelogin 方法。以下是我到目前为止的内容,我不确定我是否正确:
@MicronautTest
class Controllertest(val method: executelogin()) {
@Inject
lateinit var client: RxHttpClient
@Test
fun testController(){
val request: HttpRequest<String> = HttpRequest.POST("/hello","test")
val body: String = client.toBlocking().retrieve(request)
assertNotNull(body)
assertEquals(method,method)
}
}
在上面的单元测试中,我将executelogin 方法作为controllertest 类的参数,我相信这称为方法注入。我想知道这是否是解决此问题的正确方法,或者是否需要进行调整。如果某些代码不太有意义,我深表歉意,我是 micronaut 和依赖注入概念的新手。
【问题讨论】:
标签: unit-testing kotlin dependency-injection inversion-of-control micronaut