如何使用 mockk 模拟新对象

Sco*_*ott 7 kotlin mockk

我正在尝试使用 mockk 编写单元测试。

我试图弄清楚如何模拟对象的新实例。

例如,使用 PowerMockito 我们会这样写:

PowerMockito.whenNew(Dog::class.java).withArguments("beagle").thenReturn(mockDog)
Run Code Online (Sandbox Code Playgroud)

如果我的测试的预期结果是模拟狗,我希望能够断言它等于我的实际结果:

assertEquals(mockDog, actualResult)
Run Code Online (Sandbox Code Playgroud)

我将如何使用 mockk 完成此操作?

提前致谢。

Not*_*ods 4

使用mockkConstructor(Dog::class)你可以在 MockK 中模拟构造函数。这将适用于给定类的所有构造函数,无法区分它们。

可以通过使用 来获取模拟类实例anyConstructed<Dog>()。您可以使用它来添加所需的任何存根和验证,例如:

every { anyConstructed<Dog>().bark() } just Runs
Run Code Online (Sandbox Code Playgroud)