java - 如何使用 Mockito 从 void 方法中获取值 - Groovy/java

标签 java groovy mockito bdd powermock

在这个问题上需要一些帮助。

我有一个这样的 Void 方法

    public void doSomething(String a, String b){
    ServiceUtils utils = new ServiceUtils(persistService, randomService)

    String c; 
    String d; 
    c = utils.someMethod(a, b); 
    d = service.anotherMethod(b, null);
    if(utils.validateSomething(d)){
    //...
    }



    persistService.persistMethod(c , d);

    }

我需要获取 C 中的值以继续我的常规测试。

不能模拟实用程序,它对验证很重要。 不能 mock/( spy(?)) persistService 因为在 utils 构造函数中使用。

我如何使用 mockito 做到这一点?

最佳答案

问题是你方法中的"new":

ServiceUtils utils = new ServiceUtils(persistService, randomService)

尝试重构您的代码:如果您在构造函数中注入(inject)“ServiceUtils”类,您将能够在测试中模拟它。

关于java - 如何使用 Mockito 从 void 方法中获取值 - Groovy/java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36743611/

相关文章:

Java RMI : statistics for object stubs

java - 如何在不更改已设置字体的情况下更改 TextInputLayout 提示的字体颜色?

groovy - 在 Grails 中使用 TrustManager[] trustAllCerts = new TrustManager[]

java - 如何解决使用Mockito.any()时的困惑?

java - UrlRewriteFilter run 元素生成 404,但 to 元素在 GAE/Java 上运行良好

java - 在 Java 中搜索键值对的最快和最有效的方法?

groovy - 将成对列表收集到 map 中

java - 如何测试事务数据库代码?

java - Mockito UnfinishedStubbingException

exception - 在 JUnit 中为私有(private)方法断言异常