Spring与junit测试
1.我们知道无论在J2SE还是android中都有junit测试,利用junit能够帮助方便测试代码。在之前的博客中我也写了一些J2SE的一些junit测试例子,今天对于Spring中junit小小的讨论一下。
这个Spring测试需要的jar包:
spring-test-3.2.0.RELEASE.jar
2.Spring和Junit的关系图
左边的采用传统的方式,即一般的J2SE的方式测试代码,这种情况会有些问题:
(1).每一个测试都要启动Spring,
(2).这种情况下,是测试代码管理Spring容器,而与Spring容器管理测试代码想背了。
或许还有其他的情况,因此应该采用右边的方式进行junit测试,同时也正验证了Spring框架图,为啥Test在最下面
3.简单的案例:
package cn.wwh.www.spring.bbb.test; /** *类的作用: * * *@author 一叶扁舟 *@version 1.0 *@创建时间: 2014-9-21 下午03:22:26 */ public class HelloWorld { public void show() { System.out.println("Hello World! This is my first Spring!"); } }
测试案例:
package cn.wwh.www.spring.bbb.test; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** *类的作用:测试在Spring中写测试框架 * * *@author 一叶扁舟 *@version 1.0 *@创建时间: 2014-9-21 下午10:19:41 */ //表示先启动Spring容器,把junit运行在Spring容器中 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class SpringtestTest { //自动装配Spring容器 @Autowired private BeanFactory factory; @Test public void testBeanFactory() throws Exception { HelloWorld world = factory.getBean("helloWorld",HelloWorld.class); world.show(); } }
SpringtestTest-context.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="helloWorld" class="cn.wwh.www.spring.bbb.test.HelloWorld"/> </beans>
注意:
(1).@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@Autowired
@Test
这些都是测试标签
(2).@ContextConfiguration去找配置文件,默认从当前路径去找
如果置文件名= 当前测试类名-context.xml,就可以在当前路径找.可以省略如上面的SpringtestTest-context.xml,测试类为:SpringtestTest.java
如果不是按照约定写的,测需要按照加载路径的格式写:
@ContextConfiguration("classpath:cn/wwh/www/spring/bbb/test/SpringtestTest-context.xml")