加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Mockito:当方法A.a被调用然后执行B.b

发布时间:2020-12-14 16:35:34 所属栏目:Java 来源:网络整理
导读:我正在使用Mockito进行JUnit测试. 所以有一个给定的类A是从我想要测试的代码中使用的: class A{ public A(){} public final String a(String x){ return "A.a: " + x; }} 并且我想用另一个方法调用替换方法调用A.a具有相同的参数和相同类型的返回值.正如你
我正在使用Mockito进行JUnit测试.
所以有一个给定的类A是从我想要测试的代码中使用的:
class A{

    public A(){}

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

}

并且我想用另一个方法调用替换方法调用A.a具有相同的参数和相同类型的返回值.正如你所看到的,它不可能通过将类扩展为final来覆盖方法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 limits,不可能覆盖Mockito生成的模拟的最终方法.但是,您可以使用 Powermock在运行时破解代码,以便Mockito可以完成其工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读