Mockito - 参数化类的间谍调用mock方法

时间:2017-03-26 16:13:11

标签: java mocking mockito spy parameterization

我一直在摸着Mockito刚刚发生的事情。

我有这个名为ExamineFilter的类,到目前为止还没有参数化。 150多个测试与这个班级和其他人都做得很好。很多嘲笑。

然后我从

更改了ExamineFilter
public class ExamineFilter extends FilteringTokenFilter implements GettableSet<UniqueSequence> {

public class ExamineFilter<V extends UniqueSequenceInterface> extends FilteringTokenFilter implements GettableSet<V> {

现在,当我有一个ExamineFilter的间谍,然后去

spyExamineFilter.add( ... ) 

...此方法add 未调用 ,但代码仍然存在。而之前被称为。

此处的add方法实际上来自Set,因为GettableSet扩展了Set,而Set.add的签名是

public boolean add( V element ){ ...

...每次在间谍上调用此方法时,它都会返回false ...这似乎是模拟在这样的boolean - 返回方法被模拟时会做的事情。

我还通过找出如果不使用ExamineFilter<...>的间谍而使用真实的ExamineFilter<...>来确定会发生什么事情,这确实发生了这种情况:事实上,{ {1}}被称为正常。

对于这种Mockito行为,是否有已知且有记录的解释?显然,我现在正在考虑使用变通方法重写一些现在已经变红的测试...

附录

顺便说一句,对于任何有兴趣的人,我都尝试了两种口味&#34; &#34; callRealMethod&#34;:

add

......如果有任何传球的Mockito高级牧师这样做:上述任何一种情况都表明可能会引发Mockito团队问题的异常行为吗?

0 个答案:

没有答案