doAnswer检查哪个类称为特定功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了doAnswer检查哪个类称为特定功能?相关的知识,希望对你有一定的参考价值。
我只是想从一个特定的类调用一个方法,因为底层框架调用我的模拟方法N次。
有没有办法描述特定模拟方法的调用者,以便我可以根据调用者有条件地返回数据?
我正在使用Mockito和doAnswer API
答案
如果您正在寻找方法的调用层次结构,这将是完美的答案
StackTraceElement[] cause = Thread.currentThread().getStackTrace();
从此数组中,您可以获取所有层次结构类名称,以便在此数组中检入调用此方法的类
另一答案
我认为你应该能够返回自定义答案。使用此API,您可以访问模拟的调用。您可以使用Deadpool的答案,并且应该能够有条件地根据呼叫者返回一些内容。帮助有帮助!
Mockito.doAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
// TODO Auto-generated method stub
// do something with the stack trace
StackTraceElement[] cause = Thread.currentThread().getStackTrace();
return somthing;
}
}).when(service).doSomething();
这个问题可能有所帮助:How do I find the caller of a method using stacktrace or reflection?
以上是关于doAnswer检查哪个类称为特定功能?的主要内容,如果未能解决你的问题,请参考以下文章