因此,对于我的单元测试,我使用的是easymock。我有一个findProject方法,它查询数据库并返回项目列表。我已经模拟了返回entityManger的对象(我正在使用JPA和Hibernate)。所以它类似于:mockedRepository.findList(),它返回projectList。所以现在这是一个模拟的对象。所以在这些情况下我无法检查findList的返回值。对? Cuz是一个模拟对象,它只返回我想要的东西。因此,如果您想测试这种查询db的方法,我们就不能使用mocking。对?我可以检查是否已使用easyMocking调用方法。正确?
感谢。
答案 0 :(得分:2)
答案 1 :(得分:1)
你至少有两个选择:
EntityManager
创建您自己的实例Persistence.createEntityManagerFactory("persistence_unit_name").createEntityManager()
,并在存根中使用它或注入正在测试的对象。我个人在我的项目中为每个查询使用第二个选项。我使用这个库来测试查询是否在没有任何解析异常的情况下执行。前段时间我试着测试查询是否返回了我想要返回的内容(这个lib也可以帮助你设置db并用测试数据填充它 - 比如dbunit)但是因为它很麻烦所以我放弃了它。
答案 2 :(得分:1)
因此,如果您想测试这种查询db的方法,我们就不能使用mocking。正确?
右。