切换主题
七、集成Junit
一、步骤
- 导入
spring
集成Junit
的坐标 - 使用
@Runwith
注解替换原来的运行期 - 使用
@ContextConfiguration
指定配置文件或配置类 - 使用
@Autowired
注入需要测试的对象 - 创建测试方法进行测试
二、代码实现
1、导入坐标
xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>6.1.6</version>
</dependency>
xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.1.6</version>
</dependency>
提示
spring-test
和junit
要一起导入
2、配置类
java
@Configuration
@ComponentScan("com.hdq")
@Import({DataSourceConfiguration.class})
public class SpringConfiguration {
}
java
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfiguration {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean("dataSource")
public DataSource getDateSource() throws PropertyVetoException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass(driver);
dataSource.setJdbcUrl(url);
dataSource.setUser(username);
dataSource.setPassword(password);
return dataSource;
}
}
3、测试类
java
@RunWith(SpringJUnit4ClassRunner.class) //告诉JUnit使用SpringJUnit4ClassRunner来运行测试
@ContextConfiguration(classes = {SpringConfiguration.class}) //Spring Test将加载SpringConfiguration类(以及它可能导入的任何其他配置类),并创建一个测试上下文,其中包含这些配置中定义的所有bean
//@ContextConfiguration("classpath:applicationContext.xml")
public class Demo {
@Autowired
private DataSource dataSource;
@Test
public void test() throws SQLException {
System.out.println(dataSource.getConnection());
}
}