9

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

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

例如,使用 PowerMockito 我们将编写:

PowerMockito.whenNew(Dog::class.java).withArguments("beagle").thenReturn(mockDog)

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

assertEquals(mockDog, actualResult)

我将如何使用 mockk 完成此任务?

提前致谢。

4

2 回答 2

4

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

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

every { anyConstructed<Dog>().bark() } just Runs
于 2020-07-06T05:29:02.733 回答
-1

MockK 是一个用于单元测试代码的库。不要将它用于模拟构造函数。如果您确实需要模拟构造函数,可以使用 PowerMock 模拟构造函数。

于 2018-11-15T12:18:11.933 回答