您好我有一个单元测试应该测试的cronjob弹簧非事务性单元测试和休眠
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:WebContent/WEB-INF/applicationContext.xml" })
@TransactionConfiguration(transactionManager = "hibernateTransactionManager")
@Transactional
public class cronTest {}
但由于的cronjob没有看到测试的数据交易。但是,当我删除@Transactional休眠说:
org.hibernate.HibernateException: No Session found for current thread
,当我用我自己的
sessionFactory.getCurrentSession().getTransaction().commit();
sessionFactory.getCurrentSession().beginTransaction();
测试提交末
org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Transaction not successfully started
失败,我怎样才能得到一个单元测试没有交易?
该测试是否成才这样的:
userDao.clear();
loadeduser = userService.getUserById(createUser.getUserID());
assertTrue(loadeduser.getAuthoritiesEntities().contains(adminRole));
assertTrue(loadeduser.getAuthoritiesEntities().contains(userRole));
// Wait for auto unsign
TestUtils.sleep(10000);
userDao.clear();
loadeduser = userService.getUserById(createUser.getUserID());
assertFalse(loadeduser.getAuthoritiesEntities().contains(adminRole));
assertTrue(loadeduser.getAuthoritiesEntities().contains(userRole));
它检查是否过期角色的自动unsign工作,石英作业每5秒
你可以添加crontTest()的更多内容吗?我希望看到正在测试的主题的方法调用以及sessionFactory方法的位置。 – Jay