如果spring 4.3.18这个版本的spring要使用junit,需要使用junit的junit-4.12之上的版本。使用这个版本junit的时
候需要引入hamcrest-all的jar包。之前的junit版本是不需要单独引入这个jar包的,因为之前版本把hamcrest-all的
jar包集成进来了,从4.12开始,该jar包不集成,需要单独的引入。
/**
* 使用junit进行单元测试
*/
public class JunitTest {
@Test
public void testSave(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
OrderService orderService = context.getBean(OrderService.class);
//保存订单
Orders order = new Orders();
order.setId(1L);
order.setCreate_user("张三");
order.setCreateDate(new Date().toString().substring(0,20));
order.setTotalMoney(9000D);
OrderItem oi1 = new OrderItem();
oi1.setId(1L);
oi1.setPname("洗衣机");
oi1.setPrice(900D);
oi1.setNum(1);
order.getOrderItems().add(oi1);
OrderItem oi2 = new OrderItem();
oi2.setId(2L);
oi2.setPname("微波炉");
oi2.setPrice(356D);
oi2.setNum(2);
order.getOrderItems().add(oi2);
//执行保存
orderService.save(order);
}
}
如果每次都这样做spring的测试,理论上是可的但是,但是每个单元测试的方法中都要有创建spring工厂
,从工厂中获取对象的方法。比较复杂,我们可以使用spring 单元测试功能,来解决这个问题:
如果要使用spring的单元测试,需要先引入spring 单元测试的jar包:

/**
* 使用junit进行单元测试
*/
//指定在单元测试启动的时候创建spring的工厂类对象
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
//RunWith的value属性指定以spring test的SpringJUnit4ClassRunner作为启动类
//如果不指定启动类,默认启用的junit中的默认启动类
@RunWith(value = SpringJUnit4ClassRunner.class)
public class JunitTest {
@Autowired
private OrderService orderService;
@Test
public void testSave(){
// ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// OrderService orderService = context.getBean(OrderService.class);
//保存订单
Orders order = new Orders();
order.setId(1L);
order.setCreate_user("张三");
order.setCreateDate(new Date().toString().substring(0,20));
order.setTotalMoney(9000D);
OrderItem oi1 = new OrderItem();
oi1.setId(1L);
oi1.setPname("洗衣机");
oi1.setPrice(900D);
oi1.setNum(1);
order.getOrderItems().add(oi1);
OrderItem oi2 = new OrderItem();
oi2.setId(2L);
oi2.setPname("微波炉");
oi2.setPrice(356D);
oi2.setNum(2);
order.getOrderItems().add(oi2);
//执行保存
orderService.save(order);
}
}

spring的单元测试的更多相关文章

  1. Spring之单元测试

    引言 是否在程序运行时使用单元测试是衡量一个程序员素质的一个重要指标.使用单元测试既可以让我检查程序逻辑的正确性还可以让我们减少程序测试的BUG,便于调试可以提高我们写程序的效率.以前我们做单元测试的 ...

  2. Spring Boot单元测试(Mock)

    Spring Boot单元测试(Mock) Java个人学习心得 2017-08-12 16:07 Mock 单元测试的重要性就不多说了,我这边的工程一般都是Spring Boot+Mybatis(详 ...

  3. Spring MVC学习总结(1)——Spring MVC单元测试

    关于spring MVC单元测试常规的方法则是启动WEB服务器,测试出错 ,停掉WEB 改代码,重启WEB,测试,大量的时间都浪费在WEB服务器的启动上,下面介绍个实用的方法,spring MVC单元 ...

  4. Spring Boot 单元测试示例

    Spring 框架提供了一个专门的测试模块(spring-test),用于应用程序的单元测试. 在 Spring Boot 中,你可以通过spring-boot-starter-test启动器快速开启 ...

  5. 使用Junit对Spring进行单元测试实战小结

    Demo代码: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath*:/ ...

  6. web工程spring+ibatis单元测试

    web工程spring+ibatis在本地做单元测试,用例如下: package wanghongye; import org.junit.Before; import org.junit.Test; ...

  7. spring boot单元测试(转)

    Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性.凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半. ...

  8. Spring Controller单元测试

    SpringMVC controller测试较简单,从功能角度划分,可分为两种.一种是调用请求路径测试,另一种是直接调用Controller方法测试. 调用请求路径测试 通过请求路径调用,请求需要经过 ...

  9. Spring+JUnit4单元测试入门

    (一).JUnit介绍 JUnit是Java中最有名的单元测试框架,多数Java的开发环境都已经集成了JUnit作为单元测试的工具.好的单元测试能极大的提高开发效率和代码质量. Maven导入juni ...

随机推荐

  1. 文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"

    文档根元素 "beans" 必须匹配 DOCTYPE 根 "null" (2011-11-20 21:26:41) 转载▼ 标签: 杂谈 分类: spring- ...

  2. 数据结构和算法(Golang实现)(28)查找算法-AVL树

    AVL树 二叉查找树的树高度影响了查找的效率,需要尽量减小树的高度,AVL树正是这样的树. 一.AVL树介绍 AVL树是一棵严格自平衡的二叉查找树,1962年,发明者Adelson-Velsky和La ...

  3. IKAnalyzer修改支持lucene8.0

    源码已经上传GitHub. 如果直接使用jar:IKAnalyzer-5.0.2. 在这我只是在原有代码结构上做了微调,让代码支持lucene8.0.

  4. [转] [知乎] Roguelite 和 Roguelike 的区别是什么?

    编者按 本文译自 Ethan Hawkes 一篇介绍 rogue-lite 概念的文章,已获作者授权,英文原文见这里,译文首发于这里.注意本文写于 2013 年,正是 roguelite 类型的独立游 ...

  5. SpringBoot集成MyBatis底层原理及简易实现

    MyBatis是可以说是目前最主流的Spring持久层框架了,本文主要探讨SpringBoot集成MyBatis的底层原理.完整代码可移步Github. 如何使用MyBatis 一般情况下,我们在Sp ...

  6. 负载均衡服务之HAProxy基础配置(一)

    前文我们聊了下haproxy的基础安装,以及怎样去代理后端主机的配置:当然没有很详细的去说配置文件中各指令的意思:有关haproxy的安装和代理后端server可以参考本人博客https://www. ...

  7. 上传文件的input问题以及FormData特性

    1.input中除了type="file"还要加上name="file",否则$_FILES为空,input的name值就是为了区分每一个input的 2.va ...

  8. MATLAB 之MATLAB2016b 安装破解教程

    MATLAB2016b 安装破解教程 安装包: 链接: https://pan.baidu.com/s/1RNwRGRjR-bHQEq1OMJ57OA 提取码: r663 步骤: (1)R2016b_ ...

  9. linux 二级目录结构

    Linux系统里面目录的顶点都是根 /etc /etc/passwd : Linux用户登陆的文件 /etc/group : 存放Linux用户组的文件 /etc/shadow :存放用户密码的文件 ...

  10. webpack前端构建angular1.0!!!

    webpack前端构建angular1.0 Webpack最近很热,用webapcak构建react,vue,angular2.0的文章很多,但是webpack构建angualr1.0的文章找来找去也 ...