繁体   English   中英

验证场景的事务性Spring Junit4测试用例

[英]Transactional Spring Junit4 test cases for Validation scenario

我正在使用Spring,JPA使用休眠服务-> dao层。 交易是春季管理的。 我有一个验证测试用例,其中,我需要验证是否有重复的数据插入并抛出异常。

在我的测试用例中,它是AbstractTransactionalJUnit4SpringContextTests的扩展

我已经将@TransactionConfiguration配置为defaultRollback为true,并且为事务管理器指定了bean名称(在我的情况下,它是JpaTransactionManager的bean)

我按以下步骤执行此测试用例

  1. 通过调用dao.create(entity);创建记录。 (这将成功)

  2. 创建相同的记录(所有属性都与步骤1中设置的相同)并调用dao.create(entity)(此操作必须失败,但不能失败)

  3. 在我的create(entity)方法中,我调用validate()方法,该方法将触发标量对象查询(JPQL)进行验证。

我希望验证会失败,但这毫无例外,并且重复数据会插入DB中。

我尝试调试(启用了休眠日志),但发现选择查询(标量查询)无法获取正确的数据(理想情况下,它应该获取至少1条记录,因为我在上面列出的步骤1中为其插入了数据。)

在选择查询进行验证之前,我看到在日志中插入针对step1的查询。

对于这种涉及带有休眠状态的spring / jpa的方案,还有其他方法可以编写测试用例吗?

请发表您的看法

提前致谢!!

您能否在这里粘贴您的测试,我相信每个测试都在自己的事务中运行,并且您将defaultRollback设置为true。 那应该是问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM