Spring test 集成测试 续

来源:互联网 发布:知乎隐藏提问找不到了 编辑:程序博客网 时间:2024/05/16 11:08
  昨天了解了一下使用Spring的test框架做Junit的集成单元测试,一般情况下,我们的测试类是继承自抽象类AbstractDependencyInjectionSpringContextTests,需要注意的就是要重写方法getConfigLocation()。这样的测试类有个优点就是每个测试方法Spring容器都只对beans初始化一次。        但是,有些情况下我们不想在单元测试的时候破坏数据库现场,这时候可以是测试类继承抽象类AbstractTransactionalSpringContextTests。使用这个抽象类的时候,一定要注意属性TransactionManager属性的注入,以及TransactionManager的DataSource属性的注入,否则测试类是不能够初始化的,会抛出异常:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.ali.luna.crm.test.biz.train.TrainingBOImplTest': Unsatisfied dependency expressed through bean property 'transactionManager': Set this property value or disable dependency checking for this bean.at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.checkDependencies(AbstractAutowireCapableBeanFactory.java:1184)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1006)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:329)at org.springframework.test.AbstractDependencyInjectionSpringContextTests.injectDependencies(AbstractDependencyInjectionSpringContextTests.java:205)at org.springframework.test.AbstractDependencyInjectionSpringContextTests.prepareTestInstance(AbstractDependencyInjectionSpringContextTests.java:180)at org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:100)at junit.framework.TestCase.runBare(TestCase.java:125)at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)at junit.framework.TestResult$1.protect(TestResult.java:106)at junit.framework.TestResult.runProtected(TestResult.java:124)at junit.framework.TestResult.run(TestResult.java:109)at junit.framework.TestCase.run(TestCase.java:118)at junit.framework.TestSuite.runTest(TestSuite.java:208)at junit.framework.TestSuite.run(TestSuite.java:203)at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)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)        俺被这个坑困扰了一天。        若是想了解更多Spring单元测试相关,可访问如下链接:        http://www.blogjava.net/vcycyv/archive/2011/02/24/345040.html
原创粉丝点击