当底层框架调用我的模拟方法N次时,我试图模拟仅从特定类调用的方法。
有没有办法描述特定模拟方法的调用者,以便我可以根据调用者有条件地返回数据?
我正在使用Mockito和doAnswer API
答案 0 :(得分:1)
如果您正在寻找方法的调用层次结构,这将是完美的答案
StackTraceElement[] cause = Thread.currentThread().getStackTrace();
从此数组中,您可以获得所有层次结构类名称,以便您在此数组中检查哪个类调用了此方法
答案 1 :(得分:1)
我认为您应该能够返回自定义答案。使用此API,您可以访问模拟的调用。您可能可以使用Deadpool的答案,并且应该能够根据调用者有条件地返回某些内容。有用的帮助!
=INDEX(Database!$A$1:$A$250,MATCH(B9,Database!$B$1:$B$250,0))
这个问题可能会有所帮助: How do I find the caller of a method using stacktrace or reflection?