Kotlin 科特林·朱尼特·莫克跑步者

Kotlin 科特林·朱尼特·莫克跑步者,kotlin,junit,mockk,Kotlin,Junit,Mockk,我正在尝试使用Kotlin和框架编写单元测试。如果测试是使用JUnit5框架编写的,那么可以使用MockKExtension运行它们 @ExtendWith(MockKExtension::class) 但是对于junit4测试,是否有mockrunner? 比如: 如果没有这样的运行程序,则需要手动初始化模拟 private val a: A = mockK() 是否可以使用带有JUnit4的注释来初始化kotlin模拟 @MockK private lateinit var a: A

我正在尝试使用
Kotlin
和框架编写单元测试。如果测试是使用JUnit5框架编写的,那么可以使用
MockKExtension
运行它们

@ExtendWith(MockKExtension::class)
但是对于
junit4
测试,是否有
mock
runner? 比如:

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

private val a: A = mockK()
是否可以使用带有JUnit4的注释来初始化kotlin模拟

@MockK
private lateinit var a: A
答案是否定的

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

您只需编写如下代码:

class CarTest {
  @MockK
  lateinit var car1: Car
  @Before
  fun setUp() = MockKAnnotations.init(this, relaxUnitFun = true) // turn relaxUnitFun on for all mocks
  // And so on…
顺便说一句,这不是手工制作的例子,它来自

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