我正在尝试使用模拟来编写单元测试。
我正在尝试弄清楚如何模拟对象的新实例。
例如,使用PowerMockito,我们将编写:
PowerMockito.whenNew(Dog::class.java).withArguments("beagle").thenReturn(mockDog)
如果我的测试的预期结果是模拟狗,我希望能够断言它等于我的ActualResult:
assertEquals(mockDog, actualResult)
我将如何使用嘲笑来做到这一点?
谢谢。
答案 0 :(得分:2)
使用mockkConstructor(Dog::class)
可以在MockK中模拟构造函数。这将适用于给定类的所有构造函数,无法区分它们。
可以使用anyConstructed<Dog>()
获得模拟的类实例。您可以使用它来添加所需的任何存根和验证,例如:
every { anyConstructed<Dog>().bark() } just Runs
答案 1 :(得分:0)
MockK是一个用于对代码进行单元测试的库。不要将其用于模拟构造函数。如果确实需要模拟构造函数,则可以使用PowerMock进行模拟构造函数。