SSpring之使用Junit进行测试
一、Spring与Junit为什么要进行整合?
程序的入口是main方法,在junit中没有main方法,程序能执行靠的是@Test注解,Junit与Spring是完全不同的两个东西,要在Junit中使用Spring的东西就需要让Spring与Junit进行整合。
二、添加依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
三、使用@RunWith
使用@RunWith替换原有运行器,替换成spring提供的,即让测试运行于Spring测试环境
@RunWith(SpringJUnit4ClassRunner.class)
public class UserServiceTest {
}
四、使用@ContextConfiguration
使用@ContextConfiguration指定 spring 配置文件的位置,即使用注解引入多个配置文件
@ContextConfiguration
locations 属性:用于指定配置文件的位置。
如果是类路径下,需要用 classpath:表明
classes 属性:用于指定注解的类。
当不使用 xml 配置时,需要用此属性指定注解类的位置。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
//@ContextConfiguration(classes = SpringConfiguration.class)
public class UserServiceTest {
}
五、使用@Autowired
使用@Autowired 给测试类中的变量注入相应对象
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
//@ContextConfiguration(classes = SpringConfiguration.class)
public class UserServiceTest {
@Autowired
private UserService userService;
@Test
public void testFindAll() {
List<User> users = userService.FindAll();
for(User user : users){
System.out.println(user);
}
}
}
六、执行测试验证
七、通用测试环境封装
定义通用测试父类
定义一个父类,设置通用的配置信息,构成一个通用的测试环境,需要使用环境的直接继承类即可
@RunWith(SpringJUnit4ClassRunner.class) // 将junit测试加到spring环境中
@ContextConfiguration(locations = {"classpath:spring.xml"}) // 设置要加载的资源文件
public class BaseTest {
}
继承通用的测试类
public class SpringJdbcTest04 extends BaseTest {
@Resource
private JdbcTemplate jdbcTemplate;
@Test
public void testQueryCount() {
// 定义sql语句
String sql = "select count(1) from tb_user";
// 执行查询操作
Integer total= jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println("总记录数:" + total);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137136.html