[英]Transactional Spring Junit4 test cases for Validation scenario
我正在使用Spring,JPA使用休眠服务-> dao层。 交易是春季管理的。 我有一个验证测试用例,其中,我需要验证是否有重复的数据插入并抛出异常。
在我的测试用例中,它是AbstractTransactionalJUnit4SpringContextTests的扩展
我已经将@TransactionConfiguration配置为defaultRollback为true,并且为事务管理器指定了bean名称(在我的情况下,它是JpaTransactionManager的bean)
我按以下步骤执行此测试用例
通过调用dao.create(entity);创建记录。 (这将成功)
创建相同的记录(所有属性都与步骤1中设置的相同)并调用dao.create(entity)(此操作必须失败,但不能失败)
在我的create(entity)方法中,我调用validate()方法,该方法将触发标量对象查询(JPQL)进行验证。
我希望验证会失败,但这毫无例外,并且重复数据会插入DB中。
我尝试调试(启用了休眠日志),但发现选择查询(标量查询)无法获取正确的数据(理想情况下,它应该获取至少1条记录,因为我在上面列出的步骤1中为其插入了数据。)
在选择查询进行验证之前,我看到在日志中插入针对step1的查询。
对于这种涉及带有休眠状态的spring / jpa的方案,还有其他方法可以编写测试用例吗?
请发表您的看法
提前致谢!!
您能否在这里粘贴您的测试,我相信每个测试都在自己的事务中运行,并且您将defaultRollback设置为true。 那应该是问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.