微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在使用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可以完成其工作.

原文地址:https://www.jb51.cc/java/124843.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐