使用非JPA存储库对象的SpringBoot应用程序的junit测试用例

时间:2018-11-09 15:39:06

标签: spring spring-boot spring-test spring-boot-test

我正在编写一个springboot组件,该组件仅负责审核登录操作。 由于组件仅负责写入数据库,因此对表将没有任何检索(选择)操作。我只是使用 a b c d 1 1 2 3 test1 test2 test3 2 1 2 3 test1 test2 test3 test4 (org.springframework.data.repository.Repository)包和带有insert into语句的实现方法来将其写入数据库。

@Repository

可以在http请求上执行此方法。

我想在H2数据库上编写junit测试,以验证记录是否正确插入。为此,我正在使用测试配置文件。在具有H2依赖关系的测试方法上插入记录似乎也可以工作-但是我目前没有找到验证记录是否存在的方法。

任何建议如何实现?

Ps。我了解可以通过@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); } (org.springframework.data.jpa.repository.JpaRepository)或@JpaRepository来实现,但我不希望使用它们,因为使用Repository,不同的方法会使应用程序轻巧重量。

1 个答案:

答案 0 :(得分:0)

您可以@Mock对象和@Repository org.mockito.Mockito.verify对象,并且能够验证上面编写的Sql是否在调用时执行。 (认证请求) 即。模拟AuditRepository并验证对象。

verify(auditRepository).recordUserAudit(user_id,datetime, function_code, ipAddress);