gpt4 book ai didi

java - native 查询上的 Mockito NullPointerException

转载 作者:行者123 更新时间:2023-11-30 03:16:57 27 4
gpt4 key购买 nike

我的查询对象有问题,即使我使用查询模拟对象对其进行 stub ,它也会变为空。这是代码

Query query = getEntityManager().createNativeQuery(queryString, SomeRandom.class);

return query.getResultList(); //-->This is where I get the error, the query object is null.

我的测试方法是

Query query = mock(Query.class);
when(entityManager.createNativeQuery("", SomeRandom.class)).thenReturn(query);
List<SomeRandom> someList = requestDao.getSomeList(parameter, parameter, parameter, parameter);

最佳答案

这可能意味着您传递给模拟方法的匹配器之一不匹配。您传递了一个实际的 String 实例(空字符串),该实例在底层转换为 Equals matcher 。仅当 queryString 也是空字符串时,您的示例才有效。

这应该匹配任何查询字符串:

when(entityManager.createNativeQuery(anyString(), eq(SomeRandom.class)))
.thenReturn(query);

这是您希望传递的一些具体字符串:

String expectedQueryString = "select 1";

when(entityManager.createNativeQuery(expectedQueryString, SomeRandom.class))
.thenReturn(query);

根据评论进行编辑:

如果从 eq(SomeRandom.class) 更改为 any() 解决了问题,则 eq(SomeRandom.class) 匹配器不匹配,这意味着 SomeRandom.class 并不是实际传递给模拟方法的内容。

关于java - native 查询上的 Mockito NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32343646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com