如何在Spek测试中使用依赖注入

use*_*733 7 testing spring kotlin

我正在使用Kotlin,Spring和Spek实现简单的微服务.我想测试我的存储库,但我想知道如何将repo注入spek测试用例.每个示例或教程都基于创建新的引用,如下所示:

object SampleTest : Spek({
    describe("a calculator") {
        val calculator = SampleCalculator()

        it("should return the result of adding the first number to the second number") {
            val sum = calculator.sum(2, 4)
            assertEquals(6, sum)
        }

        it("should return the result of subtracting the second number from the first number") {
            val subtract = calculator.subtract(4, 2)
            assertEquals(2, subtract)
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

总结一下,我不想这样做:

val calculator = SampleCalculator()
Run Code Online (Sandbox Code Playgroud)

我想实现这一目标

@Autowired
val calculator: SampleCalculator
Run Code Online (Sandbox Code Playgroud)

但我不能这样,因为我不能将服务自动服务到本地变量..任何解决方案?我是kotlin和spek的新人.

loc*_*loc 1

尝试使用Lateinit

@Autowired
lateinit var calculator: SampleCalculator
Run Code Online (Sandbox Code Playgroud)