您的位置:首页 > 编程语言 > Java开发

Spring test 集成测试 续

2011-08-21 13:15 393 查看
昨天了解了一下使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: