我有两个测试用例,第一个测试用例保存记录,第二个测试用例更新第一个测试用例中添加的记录。我使用JPA / Hibernate作为ORM。
我的TestNG测试类如下:
@ContextConfiguration("file:application-context-test.xml")
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class MyEntityTest {
int long myEntityId;
@Test
@Transactional
public saveTest(){
session=getCurrentSessionFactory()
myEntity = new myEntity();
myEntityId = session.save(myEntity)
}
@Test(dependsOnMethods={"saveTest"})
@Transactional
public updateTest(){
session=getCurrentSession()
myEntity =session.getByID(myEntityId)
session.update(myEntity)
}
}
但是当执行第二个测试用例时,这会提示记录/实体不存在的错误。
即使两个测试都注释为 @Transactional ,但似乎测试仍在单独的事务中执行。
任何想法?我错过了什么重要的事吗?这是执行测试的正确方法还是我应该遵循一些不同的方法?