首页 > 代码库 > Spring Boot教程14——集成测试
Spring Boot教程14——集成测试
集成测试一般需要来自不同层的不同对象的交互,如数据库、网络连接、IOC容器等。
Spring通过Spring TestContext Framework对集成测试提供顶级支持。它不依赖于特定的测试框架,即可使用JUnit,也可使用TestNG。
基于Maven构建的项目默认有关于测试的目录:src/test/java(测试代码)、src/test/resources(测试资源),区别于src/main/java(项目源码)、src/main/resources(项目资源)。
Spring提供了一个SpringJUnit4ClassRunner类,它提供了Spring TestContext Framework的功能。通过@ContextConfiguration来配置Application Context,通过@ActiveProfiles确定活动的profile。
在使用了Spring测试后,我们前面的例子的“运行”部分都可以用Spring测试来检验功能能否正常运作。
示例
1>.在pom.xml中增加Spring测试的依赖
<!-- Spring test 支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency>
2>.业务代码(src/main/java)
package com.wisely.highlight_spring4.ch3.fortest;public class TestBean { private String content; public TestBean(String content) { super(); this.content = content; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
3>.配置类(src/main/java)
package com.wisely.highlight_spring4.ch3.fortest;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Profile;@Configurationpublic class TestConfig { @Bean @Profile("dev") public TestBean devTestBean() { return new TestBean("from development profile"); } @Bean @Profile("prod") public TestBean prodTestBean() { return new TestBean("from production profile"); }}
4>.测试(src/test/java)
package com.wisely.highlight_spring4.ch3.fortest;import org.junit.Assert;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ActiveProfiles;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class) //SpringJUnit4ClassRunner在JUnit环境下提供Spring TestContext Framework的功能@ContextConfiguration(classes = {TestConfig.class}) //@ContextConfiguration用来加载配置ApplicationContext,其中classes属性用来加载配置类@ActiveProfiles("prod") //@ActiveProfiles用来声明活动的profilepublic class DemoBeanIntegrationTests { @Autowired //可使用普通的@Autowired注入Bean private TestBean testBean; @Test //测试代码,通过JUnit的Assert来校验结果是否和预期一致 public void prodBeanShouldInject(){ String expected = "from production profile"; String actual = testBean.getContent(); Assert.assertEquals(expected, actual); } }
Spring Boot教程14——集成测试
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。