【发布时间】:2018-11-09 15:39:05
【问题描述】:
我正在编写一个springboot组件,它只负责审计登录操作。
由于组件只负责写入数据库,不会对表进行检索(选择)操作。我只是使用@Repository(org.springframework.data.repository.Repository) 包和实现方法与插入语句写入数据库。
@Repository
public interface AuditRepository extends Repository<UserAudit,String> {
@Modifying
@Query(value = "insert into user_audit(user_id,datetime,function_code,ip_address) values (:user_id,:datetime,:function_code,:ip_address)",nativeQuery = true)
@Transactional
public void recordUserAudit(@Param("user_id")String user_id, @Param("datetime") Timestamp datetime, @Param("function_code") int function_code, @Param("ip_address") String ipAddress);
}
在 http 请求上执行此方法确实有效。
我想在 H2 数据库上编写 junit 测试来验证记录是否正确插入。我正在使用测试配置文件。在具有 H2 依赖性的测试方法上插入记录似乎也有效 - 但是我目前看不到验证记录是否存在的方法。
任何建议如何实现它?
附言。我知道@JpaRepository(org.springframework.data.jpa.repository.JpaRepository) 或@CrudRepository 都可以做到这一点,但我不希望使用它们,因为使用 Repository 和不同的方法将使应用程序重量轻。
【问题讨论】:
-
在任何时候你都可以使用 spring
JdbcTemplate,它只需要数据源(你可以在你的测试中自动装配它)并编写简单的选择来检查你需要的一切。
标签: spring spring-boot spring-test spring-boot-test