Spring Test @ContextConfiguration
来源:原创 发布时间:2015-04-19 归档:spring-test
开发环境 :
JDK 7
Maven 3
Junit 4.11
Spring 4.1.5
Eclipse Luna
beans.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-config /> <context:component-scan base-package="org.lychie" /> </beans>BusinessServiceImpl
@Service
public class BusinessServiceImpl implements BusinessService {
@Override
public String provide() {
return "business service";
}
}
原来你可能是这样做的 :
public class BusinessServiceImplTest {
private static BusinessService businessService;
@BeforeClass
public static void prepare() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
businessService = context.getBean(BusinessService.class);
}
@Test
public void testProvide() {
String result = businessService.provide();
System.out.println("---> " + result);
}
}
现在你可以这样做的 :
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/beans.xml")
public class BusinessServiceImplTest {
@Autowired
private BusinessService businessService;
@Test
public void testProvide() {
String result = businessService.provide();
System.out.println("---> " + result);
}
}
SpringJUnit4ClassRunner 是 Spring 针对 Junit4 测试环境提供的扩展, 在 Junit4 测试环境中可以获得 Spring 上下文支持的好处。这样可以在 Junit4 测试环境中使用依赖注入以及执行事务等。
@ContextConfiguration 用于确定如何为集成测试环境装载 Spring 上下文, 典型的是 xml 配置文件的方式。
最后, 不要忘记引入 spring-test 依赖, 具体配置如下 :
pom.xml 配置
@ContextConfiguration 用于确定如何为集成测试环境装载 Spring 上下文, 典型的是 xml 配置文件的方式。
最后, 不要忘记引入 spring-test 依赖, 具体配置如下 :
<properties>
<spring.version>4.1.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
示例代码下载