[Spring] Spring Test结合JUnit的单元测试

简介: 配置依赖文件名:pom.xml(部分) org.springframework spring-test 4.1.1.RELEASE test junit junit 4.11 test 建立与src同级的测试源码目录 (test),编写测试基类。
+关注继续查看
  1. 配置依赖
    文件名:pom.xml(部分)
<!-- Spring 单元测试,需要JUint -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>4.1.1.RELEASE</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope><!-- 表示开发的时候引入,发布的时候不会加载此包 -->
</dependency>
  1. 建立与src同级的测试源码目录 (test),编写测试基类。
    BastTest类负责加载配置文件,设置事务等。之后的所有测试类都可以直接继承此类,就不需要每次都加载配置文件。
    文件名:BaseTest.java
package com.spz.spzblog.test;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

/**
 * 测试基类
 */
@RunWith(SpringJUnit4ClassRunner.class) //使用Spring实现的测试执行类
@ContextConfiguration({"/spring/*.xml","/mybatis/*.xml"}) //加载配置文件
//@Transactional
//@TransactionConfiguration(transactionManager = "transactionManager",defaultRollback = true)
public class BaseTest {

}

Transactional和TransactionConfiguration注解使得数据库数据不会被测试程序污染。如果在测试基类中不配置这两个注解,则需要给需要事务管理的测试方法添加事务注解。
文件名:UserTest.java

package com.spz.spzblog.test.usertest;

import com.spz.spzblog.po.User;
import com.spz.spzblog.service.UserService;
import com.spz.spzblog.test.BaseTest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.transaction.annotation.Transactional;

/**
 * 用户相关测试
 */
public class UserTest extends BaseTest{

    @Autowired
    private UserService userServiceImpl;

    @Test
    @Transactional//启用事务
    @Rollback(true)//方法结束自动回滚,false为不回滚
    public void aa()throws Exception{
        User user = new User();
        user.setUser_name("spz");
        user.setUser_pass("123");
        user = userServiceImpl.getUser(user);//此方法会访问数据库
        if(user != null){//搜索到该用户
            System.out.println("I find it:" + user.getUser_name());
        }else{
            System.out.println("Error!");
        }
    }
}

环境:
SpringMVC、Spring、Mybatis、Maven、IntelliJ IDEA、JDK1.8
Spring项目使用JUint进行单元测试的缺点:
http://blog.csdn.net/shan9liang/article/details/40452469
参考
http://blog.csdn.net/shan9liang/article/details/40452469

相关文章
|
15天前
|
测试技术
Junit单元测试
Junit单元测试
14 0
|
1月前
|
Java 测试技术
Java中JUnit单元测试
Java中JUnit单元测试
27 0
|
1月前
|
Java 测试技术 程序员
Junit单元测试
Junit单元测试
|
1月前
|
Java 测试技术
JUnit单元测试依赖包构建路径错误解决办法
JUnit单元测试依赖包构建路径错误解决办法
|
3月前
|
Java 测试技术 Spring
Mockito + Junit + SpringBoot进行单元测试
Mockito + Junit + SpringBoot进行单元测试
96 0
|
4月前
|
druid Java 数据库连接
Spring整合Mybatis&Junit单元测试
Spring整合Mybatis&Junit单元测试
|
5月前
|
Java 测试技术
单元测试_JUnit常用单元测试注解介绍及代码演示 2
单元测试_JUnit常用单元测试注解介绍及代码演示
56 0
|
5月前
|
Java 测试技术 数据库连接
单元测试_JUnit常用单元测试注解介绍及代码演示 1
单元测试_JUnit常用单元测试注解介绍及代码演示
71 0
|
7月前
|
Java 测试技术 开发者
Junit单元测试框架【基础篇】
Junit单元测试框架【基础篇】
Junit单元测试框架【基础篇】
|
7月前
|
Java 测试技术 Maven
【高效编码】超全面的,超正的单元测试框架Junit的使用姿势
您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧。小伙伴们有想看的欢迎积极留言。前面几篇文章介绍Idea的常用插件,这只是本专栏很小的一部分,实现高效编码是一个很广泛的点,需要系统化的知识。其中单元测试就是非常重要的一部分。充分的单元测试可以很好的提高代码质量。本篇文章就将介绍单元测试框架Junit,小伙伴们是不是很期待呀,哈哈哈。
96 0
【高效编码】超全面的,超正的单元测试框架Junit的使用姿势
相关产品
云迁移中心
推荐文章
更多