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



我正在编写一个springboot组件,它只负责审核登录操作。由于组件只负责写入数据库,所以不会对表进行检索(选择(操作。我只是简单地使用@Repository(org.springframework.data.repository.repository(包和带有insert语句的实现方法来写入数据库。

@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依赖性的测试方法上插入记录似乎也有效——但我目前还看不到验证记录存在的方法。

有什么建议吗?如何实现?

Ps。我知道@JpaRepository(org.springframework.data.jpa.repository.JpaRepository(或@CrudRepository都可以做到这一点,但我不想使用它们,因为使用repository和独特的方法会使应用程序变得更轻。

您可以@Mock您的@Repository对象和org.mockito.Mockito.verify,并能够验证上面写的Sql是否在调用时执行。(身份验证请求(即mockAuditRepository和验证对象。

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

相关内容

  • 没有找到相关文章

最新更新