
Originally Posted by
Marten Deinum
Don't mix JUnit3 AND JUnit4 that will definitly screw up what you are doing. First refactor your testcase to be either JUnit4 OR JUnit3 not both.
Also your stacktrace is strange it looks like if in the getJtdiDocumentServiceBean you are creating a new ApplicationContext...
I know this post is an old one, but the subject is related to my problem.
I get same problem and my Test class is:
Code:
@TransactionConfiguration(transactionManager = "milinsTransactionManager", defaultRollback = true)
@Transactional
public class TestIrFastighetDaoEclipseLink extends AbstractBaseTest {
@Autowired
IrFastighetDao irFastighetDao;
@Autowired
GroupInfoDao groupInfoDao;
@Test
public void testSave() {
GregorianCalendar gCalendar = new GregorianCalendar(2010, 11, 29);
Date date = gCalendar.getTime();
GroupInfo firstGroupInfo = new GroupInfo();
firstGroupInfo.setGroupInfoId("1111");
firstGroupInfo.setGroupInfoType(250);
firstGroupInfo.setGroupInfo(new String(
"This is the first groupinfo buffer"));
firstGroupInfo.setVersion(3);
GroupInfo secondGroupInfo = new GroupInfo();
secondGroupInfo.setGroupInfoId("2222");
secondGroupInfo.setGroupInfoType(250);
secondGroupInfo.setGroupInfo(new String(
"This is the second groupinfo buffer"));
secondGroupInfo.setMigrated(true);
IrFastighet irFastighet = new IrFastighet();
irFastighet.setChangeDate(date);
irFastighet.setErrorMark(true);
irFastighet.setFnr("123456789");
irFastighet.setPreviousRelation(new String("Just a test"));
irFastighet.setUnclearReg(false);
ArrayList<GroupInfo> groupInfos = new ArrayList<GroupInfo>();
irFastighet.setGroupInfos(groupInfos);
irFastighet.setVersion(2);
irFastighet.addGroupInfoToIrFastighet(firstGroupInfo);
irFastighet.addGroupInfoToIrFastighet(secondGroupInfo);
irFastighetDao.save(irFastighet);
IrFastighet irFastighet2 = irFastighetDao
.getIrFastighetByFnrAndVersion("123456789", 2);
Assert.assertNotNull(irFastighet2);
Assert.assertEquals(irFastighet2.getVersion(), 2);
Assert.assertEquals(irFastighet2.isMigrated(), false);
List<GroupInfo> list = irFastighet2.getGroupInfos();
Assert.assertEquals(list.get(0).getVersion(), 3);
Assert.assertEquals(list.get(0).isMigrated(), false);
Assert.assertEquals(list.get(1).getVersion(), 0);
Assert.assertEquals(list.get(1).isMigrated(), true);
}
My Abstract test:
Code:
@SuppressWarnings("unused")
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring-master.xml" })
public abstract class AbstractBaseTest {
}
and my stac trace when I run the test method
Code:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.transaction.interceptor.TransactionAspectSupport.determineTransactionManager(TransactionAspectSupport.java:248)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:100)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy18.save(Unknown Source)
at se.lantmateriet.milins.dao.eclipselink.TestIrFastighetDaoEclipseLink.testSave(TestIrFastighetDaoEclipseLink.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)