我正在使用Mockito进行JUnit测试。 因此,有是从我想要的代码用于检验一个给定的A类:Mockito:当方法A.a被调用,然后执行B.b
class A{
public A(){}
public final String a(String x){
return "A.a: " + x;
}
}
,我想用相同的参数和相同类型的返回值的另一种方法调用替换方法调用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的值?
任何帮助将不胜感激,先谢谢您!
你想测试什么情况?为什么A.a()是最终的?以及为什么要替换A.a()?的调用?根据我的理解,你想覆盖A.a(),对吗? – Adelin
我正在测试Android库项目(我也使用Robolectric,以便能够测试Android项目)。在这种特殊情况下,我想测试一个数据库。代码调用内容解析器,内容提供者在AndroidManifest.xml中定义,我还没有找到一种方法来设置内容提供程序的编程方式,因为它在运行测试时并未从xml加载。所以我希望代码调用内容提供者而不是内容解析器。 – user1448982