找不到有关“just run”的解释,用它存根函数时意味着什么?
它会让模拟对象调用它的真实函数,还是让该函数运行一个不执行任何操作的存根?
是否有示例来展示一些真实的用例?
@Test
fun `mocking functions that return Unit`() {
val SingletonObject = mockkObject<SingletonObject>()
every { SingletonObject.functionReturnNothing() } just Runs. // ???
SingletonObject.otherMemberFunction(). //which internally calls functionReturnNothing()
//...
}
Run Code Online (Sandbox Code Playgroud)
无论有没有这个every { SingletonObject.functionReturnNothing() } just Runs
存根,测试都是一样的。
lan*_*nyf 27
@Raibaz 的答案副本:
just runs
用于Unit
在严格模拟上返回(即不返回值)的方法。
如果您创建一个未放松的模拟并调用其上未使用every
块存根的方法,MockK 将抛出异常。
要存根返回 Unit 的方法,您可以这样做
every { myObject.myMethod() } just runs
Run Code Online (Sandbox Code Playgroud)
不,它没有(就像mockito的.thenCallRealMethod()):)
它“只是运行”,这意味着它不执行任何操作。
要运行真实的方法,您可以使用:
every { ... } answers { callOriginal() }
Run Code Online (Sandbox Code Playgroud)