Kotlinjunit MockK runner

sxpgvts3  于 11个月前  发布在  Kotlin
关注(0)|答案(2)|浏览(100)

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

@ExtendWith(MockKExtension::class)

字符串
但是对于junit 4测试,是否有MockK运行程序?例如:

@RunWith(....)


如果没有这样的runner,则需要手动初始化mock。

private val a: A = mockK()


是否可以使用junit 4的注解来初始化Kotlin模拟?

@MockK
private lateinit var a: A

vuv7lop3

vuv7lop31#

答案是否定的。
但是,在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…

字符串
顺便说一句,这不是手工制作的例子,它来自官方文档

20jt8wwn

20jt8wwn2#

更好的方法是使用官方的MockKRule(this)

@get:Rule
  val mockkRule = MockKRule(this)

  @MockK
  lateinit var car1: Car

  @RelaxedMockK
  lateinit var car2: Car

字符串

相关问题