嗨,我的生产代码中有类似的东西。一个会抛出异常的简单方法:
class Production {
fun doWork(): String {
throw IllegalArgumentException()
}
}
然而,当我Production
用 Mockk 模拟这个类时,它运行底层doWork()
方法而不是模拟方法调用:
import io.mockk.MockKAnnotations
import io.mockk.every
import io.mockk.impl.annotations.MockK
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
class Test {
@MockK
lateinit var production: Production
@Before
fun setup() {
MockKAnnotations.init(this)
}
@Test
fun test() {
every { production.doWork() } returns "Str"
assertEquals("Str", production.doWork())
}
}
测试失败,出现java.lang.IllegalArgumentException
. Mockk 不应该在Production
课堂上模拟这个方法调用吗?我有一种感觉,这可能是我来自 Mockito 背景的误解。