2

嗨,我的生产代码中有类似的东西。一个会抛出异常的简单方法:

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 背景的误解。

4

0 回答 0