Java Mockito ArgumentCaptor为空
我是初学者,请耐心点。:) 情景: 在IntelliJ/Maven上使用Mockito进行JUnit测试。 我试图用Java中的ArgumentCaptor读取传递的参数。问题是,这个捕获者本身是空的。绑架者似乎根本不起作用Java Mockito ArgumentCaptor为空,java,maven,intellij-idea,junit,mockito,Java,Maven,Intellij Idea,Junit,Mockito,我是初学者,请耐心点。:) 情景: 在IntelliJ/Maven上使用Mockito进行JUnit测试。 我试图用Java中的ArgumentCaptor读取传递的参数。问题是,这个捕获者本身是空的。绑架者似乎根本不起作用 @Captor private ArgumentCaptor<Invoice> cap; ... verify(invoiceDao).insert(cap.capture()); @Captor 私人辩手帽;
@Captor
private ArgumentCaptor<Invoice> cap;
...
verify(invoiceDao).insert(cap.capture());
@Captor
私人辩手帽;
...
验证(invoiceDao).insert(cap.capture());
我怀疑问题在于,由于其他原因,我无法使用@ExtendWith(MockitoExtension.class)。(我在@beforeach方法中放置了一些存根,它会抛出不必要的存根异常。)
有没有一种不用@ExtendWith就可以使用这个ArgumentCaptor的方法?或者这不是我问题的根源
如果我在这里完全迷路了,我很抱歉。提前谢谢你的帮助 事实上,
@Captor
注释仅在启用Mockitor扩展时有效
但是您也可以在不使用@Captor
注释的情况下手动初始化ArgumentCaptor:
ArgumentCaptor<Xxx> argumentCaptor = ArgumentCaptor.forClass(Xxx.class);
ArgumentCaptor ArgumentCaptor=ArgumentCaptor.forClass(Xxx.class);
或者,如果您只需要避免不必要的存根异常,您可以在
@extendedwith(MockitoExtension.class)
注释上方添加@MockitoSettings(Stricness=Stricness.LENIENT)
,并继续使用@Captor/@Mock.谢谢。我想这就是解决办法!:)