Mockito:当调用方法A.A时,执行B.B[英] Mockito: when Method A.a is called then execute B.b

问题描述

我正在使用 Mockito 进行 JUnit 测试.因此,我要测试的代码中使用了一个给定的 A 类:

class A{

    public A(){}

    public final String a(String x){
        return "A.a: " + x;
    }

}

我想用另一个具有相同参数和相同类型返回值的方法调用替换方法调用 A.a.如您所见,不可能通过扩展类来覆盖方法 a,因为它是最终的.所以我现在拥有的是另一个 B 类,方法是 B.b:

class B{

    public B(){}

    public String b(String x){
        return "B.b: " + x;
    }

}

现在我想确保每次从代码中调用 A.a 时,都使用 B.b 的返回值.是否有可能使用 Mockito(类似于 Mockito.when(A.a(x)).thenReturn(B.b(x)); )但使用相同的参数 x,而不知道 x 的值?

任何帮助将不胜感激,在此先感谢您!

推荐答案

根据 Mockito 限制.但是您可以使用 Powermock 在运行时破解代码,以便 Mockito 可以完成它的工作.

本文地址:https://www.itbaoku.cn/post/978786.html