java - 是否可以使用 Mockito 完全停止某个方法的运行?

标签 java unit-testing mockito

我正在对一个包含大量逻辑的方法进行单元测试。事情是这样的:

public void doSomething(int number){

    //... complex logic

    if (number % 2 == 0)
       someInstanceObject.setOdd(false);
    else
       someInstanceObject.setOdd(true); 

    //... more complex logic and database connections
}

Mockito 是否可以在 if-else 语句之后结束方法执行?我想要这样做的原因是因为我想使用 Mockito.verify() 测试这两个条件。我希望它立即停止,因为在 if-else block 之后,会有很多需要模拟的东西,例如数据库连接。

相信我,如果我可以重构它,将 if-else 语句放在其他实用程序类中并将其公开为公共(public),我会的。但事实证明我无法再重构代码了。

最佳答案

我认为使用 Mockito 后不可能停止。你想在什么时候停止对mockito 怎么说?

但是你可以尝试一个肮脏的解决方案 - 模拟一些在 if 之后抛出异常的方法调用,然后在你的测试方法中捕获它。它将停止方法执行,并且您不必模拟所有数据库内容。

关于java - 是否可以使用 Mockito 完全停止某个方法的运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30944135/

相关文章:

java - 编码Bat : LoneSum optimization

java - 这段Java代码中的对象在哪里

java - 在java中使用axom-api解码X-JWT-Assertion

visual-studio - Visual Studio 2010 速成版中的 MSTest

java - Mockito 模拟具有相似签名的相同命名方法

unit-testing - 犀牛模拟和一般模拟

testing - 为什么 mockito 返回错误前夕参数相同?

java - 如何使用 Mockito 测试和模拟用 Java 编写的 GRPC 服务

java - 如何将 ArgumentCaptor 与 Mockito.when().thenReturn() 结合使用

java - java中静态类变量的传递