繁体   English   中英

Java panacheQuery 测试抛出空指针异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM