我的应用程序使用 JPA (1.2)、Spring (3.1.2)、Spring Data (1.1.0) 和 Hibernate (4.1.7)。
我们需要编写 Junit 测试用例来测试实体和存储库,但我们无法找到正确的 Junit 示例和框架,这对于测试 JPA 的所有场景都是正确的。
请让我们知道哪个框架对于为 JPA 存储库和实体编写 Junit 是正确的。
我建议使用 Spring Test 框架,它使开发人员能够使用测试引导依赖注入容器。然后,您可以将存储库自动连接到测试中。
这是我使用该框架的一个摘录测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:META-INF/spring/test-context.xml"})
@TransactionConfiguration(defaultRollback=false)
public class CommentRepositoryTest {
@Autowired
private CommentRepository repository;
@Autowired
PostRepository postRepository;
@Test
public void findOneTest(){
Comment comment= repository.findOne(1);
assertNotNull(comment);
assertEquals("John Doe", comment.getAuthor());
}
}
注意@ContextConfiguration
指向 Spring Beans 配置文件的方式。那就是被引导的依赖注入容器。@Autowired
注释正在注入我的存储库进行测试。告诉 Spring 不要回滚测试,@TransactionConfiguration
以便您可以针对沙盒数据库运行单元测试,这可能会暴露回滚功能隐藏的问题。
我有一个项目,它在GitHub 上演示了此配置。
我还创建了一个视频教程,演示如何使用 Spring Test 配置 jUnit 测试。
我还有一个使用注释的测试示例。@Transactional
你可以看看我目前正在做的简单的 POC 项目:
https://github.com/ndjordjevic/dental-rec
您可以找到一些想法如何使用 jpa、spring、junit、dbunit 等测试 jpa 实体...