执行需要进行验证的代码,调用被模拟的方法。 使用MockK的verify函数来验证方法的调用和异常的抛出。例如: 代码语言:txt 复制 verify { mockObject.yourMethod() } 这将验证yourMethod()方法是否被调用,并且抛出了预期的异常。 总结起来,使用MockK验证方法调用抛出异常的步骤如下: 创建被测试类的实例并使用mockk()...
myMethod("actualValue") // 验证失败,参数不匹配 verify { mockService.myMethod(eq("expectedValue")) } } } 在这个例子中,actualValue 和expectedValue 不匹配,导致验证失败。你可以修改为: 代码语言:javascript 复制 verify { mockService.myMethod(eq("actualValue")) } 或者使用 any() 来匹配任何参数:...
有时候会需要确认mock对象方法被调用的次数,可以使用verify方法去校验: @TestfuntestInvokeTime(){// 配置context.getApplicationContext()返回contextevery{context.applicationContext}returns context// 执行测试用例invoker.invoke("context.getApplicationContext().getApplicationContext().getApplicationContext()")// 校...
verify { mockObj.someMethod() } 1. 2. 3. 备注:校验函数是否被调用过,前面的例子中已经写了。更高级的,还可以校验函数的调用次数、顺序、参数匹配等等。 verify(exactly = 10) { mockObj.someMethod() } 1. 2. 3. 备注:校验方法必须精确被调用10次 verify { mockObj.firstMethod() mockObj.secondMeth...
verify{mockObj.firstMethod()mockObj.secondMethod()} 备注:校验调用顺序,firstMethod必须在secondMethod之前进行调用,否则验证不通过 偏函数模拟 every{mockObject.someMethod(any())}answers{originalCall(it.invocation.args.first())} 备注:对于某些方法调用,我们并不想完全使用模拟的值,而是想使用特定的函数调用过...
在上述测试代码中,我们创建了UserRepository的Mock对象,并定义了它在被调用时返回特定的User对象。通过verify方法,我们可以确保getUserById方法在测试中确实被调用。 旅行图 以下是使用MockK进行单元测试的整体流程: Me 项目准备 添加MockK依赖 示例类编写 编写业务逻辑类 ...
我们还可以verify该方法是否被调用了一定次数,在verify前加上exactly配置即可 verify(exactly = 0) { mother.giveMoney() } 如果想验证方法被调用是否满足一定顺序,则可以使用verifySequence和verifyOrder verifySequence {mother.inform(any())mother.giveMoney()}verifyOrder {mother.inform(any())mother.giveMoney(...
private val dal = mockk<UserDal> { every { insert(any()) } returnsArgument 0 } Run Code Online (Sandbox Code Playgroud) 然后,我尝试像这样测试它:@Test fun test() { userService.registerUser(userJohn) verify(dal).insert(check { assertEquals(it.firstName, "John") }) } ...
verify { mock wasNot Called }等构造不是用于函数,而是用于整个模拟 这可以正常工作:
使用verify函数可以检查方法是否被调用: verify{mockObject.someMethod()} 这将检查mockObject.someMethod()方法是否被调用过。 模拟异常 Mockk 还可以模拟方法抛出异常的情况。使用throws函数可以模拟抛出异常: every{mockObject.someMethod()}throws Exception("Some error") 这将使得mockObject.someMethod()方法在被调用...