Closed yaochaochen closed 4 years ago
没有太明白你的意思。再详细描述一下吧。
JMockit当遇到DAO层查询时,怎么和DAO层交互,我用JMockit遇到查询语句返回实体时,这个实体是空的。怎么MockDAO层
dataQuery.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); 这句mock时, 会报强制转换异常
JMockit当遇到DAO层查询时,怎么和DAO层交互,我用JMockit遇到查询语句返回实体时,这个实体是空的。怎么MockDAO层
你是想,当执行你的test时, entityManager.createNativeQuery(sql).getResultList()这段代码不要真正地查数据库,而是你可以mock这段代码的返回值?
是这个意思么?
是的,怎么Mock它的返回值
是的,怎么Mock它的返回值
你说的其实是JMockit的级联Mock的场景,即对一个Mock对象的某个方法的返回值进行Mock, 这也有很多方法, 以你举的例子来说,可以很简单做到。 写了个例子给你, 见 http://www.jmockit.cn/showArticle.htm?channel=4&id=33
源代码,可以去 https://github.com/hzdavid/jmockit.cn 下载。
运行CascadingMockTest.java 就可以。
项目里有数据库交互时,比如查询JMockit 执行的SQL结果集是为空的。然后导致覆盖不到赋值的代码 Object o = entityManager.createNativeQuery(sql).getResultList(); 怎么处理?