spring进行测试,可以通过main函数,可以通过junit。
1、使用mian函数,一定要加载配置文件,进行bean初始化:
public static void main(String[] args) { ApplicationContext aContext = new ClassPathXmlApplicationContext("classpath:springConfig/spring-all.xml"); System.out.println(aContext.getBean("wanzi")); }
2、使用juint测试。spring使用junit测试,除了junit4和spring的jar包,还需要spring-test.jar
pom.xml
<properties> <spring.version>4.0.5.RELEASE</spring.version> </properties> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- spring的test,除了junit4和spring的jar包,还需要spring-test.jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency>
测试类:
package springAnnotions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import beans.Wanzi; //@RunWith 注释标签是 Junit 提供的,用来说明此测试类的运行者,这里用了 SpringJUnit4ClassRunner, //这个类是一个针对 Junit 运行环境的自定义扩展,用来标准化在 Spring 环境中 Junit4.5 的测试用例,例如支持的注释标签的标准化 //@ContextConfiguration 注释标签是 Spring test context 提供的,用来指定 Spring 配置信息的来源, //支持指定 XML 文件位置或者 Spring 配置类名,这里我们指定classpath下的/springConfig/spring-all.xml为配置文件的位置 //@TransactionConfiguration 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback //即您不用自己清除自己所做的任何对数据库的变更了 //TestWanziConfig是我们的测试用例,这里事务管理自动运行,当我们执行完成后,所有相关变更会被自动清除 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/springConfig/spring-all.xml") @TransactionConfiguration public class TestWanziConfig { @Autowired private Wanzi wanzi; @Test public void testConfigurationAnnotion(){ System.out.println(wanzi.getWanzi()); } }
注意:当一个组件没有被交给spring管理的时候,它是不能够引入spring的bean的。
个人理解,如有错误,欢迎指正!