Mockito:将值设置为spy对象但获取空值

s6fujrry  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(168)

我有一个测试用例,我想看看在执行过程中是否正确设置了属性:

ContainerRequestContext requestContext = spy(ContainerRequestContext.class);
someMethodThatSetsTheSecurityContext(requestContext);

verify(requestContext).setSecurityContext(argument.capture());
assertEquals("myUserName", argument.getValue().getUserPrincipal().getName());
assertNotNull(requestContext.getSecurityContext());

现在,如果我运行这个命令,verify()和assertEquals()方法返回true,但是由于某种原因requestContext.getSecurityContext()为null。我知道对于模拟对象,后面没有真正的实现,但是我认为监视的对象应该在这种情况下工作。

gywdnpxw

gywdnpxw1#

尝试改用Mockito.argThat,看看它是否会改变它:

verify(requestContext).setSecurityContext(Mockito.argThat(x -> x.getValue().getUserPrincipal().getName().equals("myUserName")));

相关问题