您好我有一個單元測試應該測試的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