Kotlin junit MockK 亚军

Kotlin junit MockK runner

我正在尝试使用 KotlinMockK 框架编写单元测试。如果测试是使用 junit 5 框架编写的,则可以使用 MockKExtension.

运行 它们
@ExtendWith(MockKExtension::class)

但是对于 junit 4 测试有 MockK 运行ner 吗? 喜欢:

@RunWith(....)

如果没有这样的 运行ner,则需要手动初始化模拟。

private val a: A = mockK()

是否可以使用带有 junit 4 的注释来初始化 kotlin 模拟?

@MockK
private lateinit var a: A

快速回答是否定的。

但是。在 JUnit 4 中使用 MockK 非常简单:

你只需要这样的代码:

class CarTest {
  @MockK
  lateinit var car1: Car
  @Before
  fun setUp() = MockKAnnotations.init(this, relaxUnitFun = true) // turn relaxUnitFun on for all mocks
  // And so on…

顺便说一句,这不是手工制作的例子,它来自official documentation