我们有很多带有连接和提取的方法,如下所示:
@Query(
"select new com.company.user.entity.DTO.UserBillingDTO(" +
"u.id as id, " +
"u.firstName as firstName, " +
"u.lastName as lastName, " +
"e.tokenId as tokenId," +
"u.companyId as companyId," +
"e.id as entityId, " +
"u.userName as userName, " +
"u.locale as locale) " +
"from User as u " +
"join u.profiles as p " +
"join p.entity as e " +
"where u.id = :userId")
UserBillingDTO findUserForBilling(@Param("userId") String userId);
我想用测试覆盖这些方法,看看我们的 HQL 查询是否返回了预期的结果。
问题是我怎样才能轻松地填充我的本地数据库来测试我们方法的结果?
- 一种明显的方法是使用代码在测试设置中创建实体。但是恐怕这个测试的可读性会很低。
- 我想到的另一个想法是从我们的测试平台转储一个数据库,用它来设置测试,然后只运行查询来检查结果。
你能想到别的吗?我如何编写一个易于团队遵循的可维护测试套件?
编辑:
- 使用 JUnit 执行插入的帖子 建议使用DBUnit