
[英]NullPointer exception in a Spring Rest Controller test - Java
[英]Java panacheQuery test throws nullpointer exception
我有一个使用 panacheQuery 的 function。 当我手动测试时,这也按预期工作。 但是当我编写测试并执行它时,我得到了一个 null 指针异常。
测试看起来像这样:
void testFindByNameAndTag() throws ApplicationException {
final ImageRepository repo = mock(ImageRepository.class);
final PanacheQuery<ImageBE> panacheQuery = mock(PanacheQuery.class);
when(repo.findByNameAndTag(anyString(), anyString())).thenCallRealMethod();
when(repo.find(anyString(), anyString())).thenReturn(panacheQuery);
when(panacheQuery.firstResultOptional()).thenReturn(Optional.of(new ImageBE()));
final ImageBE result = repo.findByNameAndTag("name", "tag");
assertNotNull(result);
}
ImageRepository 中的 findByNameAndTag function 如下所示:
@ApplicationScoped
public class ImageRepository implements PanacheRepositoryBase<ImageBE, Long> {
private static final Log LOG = LogFactory.getLog(ImageRepository.class);
public ImageBE findByNameAndTag(String name, String tag) throws ApplicationException {
return find("name = ?1 and tag = ?2", name, tag)
.firstResultOptional()
.orElseThrow(
() ->
new ApplicationException(SOME_ERROR_CODE, SOME_ERROR_MESSAGE));
}
}
测试的Output:
异常好像是在.firstResultOptional 抛出的。 我在模拟或测试中使用时做错了什么吗?
提前致谢。
尝试在测试 class 上方添加@QuarkusTest
注释
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.