Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为Junit测试模拟executeNamedQuery(查询,参数)_Java_Jpa_Junit_Entitymanager_Hibernate Generic Dao - Fatal编程技术网

Java 如何为Junit测试模拟executeNamedQuery(查询,参数)

Java 如何为Junit测试模拟executeNamedQuery(查询,参数),java,jpa,junit,entitymanager,hibernate-generic-dao,Java,Jpa,Junit,Entitymanager,Hibernate Generic Dao,@存储库 公共类DAOImpl扩展了GenericDaoImpl实现了SomeDAO{ @Autowired EntityManager em; @Override public List<PropertyURL> getProperties(String env) throws Exception{ List<String> inParam = new ArrayList<>(); inParam.add(env); Map<

@存储库 公共类DAOImpl扩展了GenericDaoImpl实现了SomeDAO{

@Autowired
EntityManager em;

@Override
public List<PropertyURL> getProperties(String env) throws Exception{
    List<String> inParam = new ArrayList<>();
    inParam.add(env);
    Map<String, Object> params = new HashMap<>();
    params.put(ProEnum.ENV.getProperty(), inParam);
    List<PropertyURL> URL = null;
    String query = "PropertyURL.getProperty";
    URL = executeNamedQuery(query, params);
    return URL;
}
@Autowired
实体管理器;
@凌驾
公共列表getProperties(字符串环境)引发异常{
List inParam=new ArrayList();
inParam.add(环境);
Map params=新的HashMap();
参数put(ProEnum.ENV.getProperty(),inParam);
列表URL=null;
String query=“PropertyURL.getProperty”;
URL=executeNamedQuery(查询,参数);
返回URL;
}

如何模拟executeNamedQuery(query,params)调用并返回一些东西,例如:Mockito.when(entityManagerMock.merge(Mockito.any())。然后返回(someObject)

在尝试模拟
EntityManager
之前,我会问自己,使用集成测试直接测试与JPA交互的组件是否更好。如果模拟
executeNamedQuery
并只运行单元测试,您将如何验证查询是否有效?我们有集成测试和单元测试,但是对于单元测试,我们需要覆盖整个方法,以查看流程是否按照预期进行。