如果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. Tomcat5启动流程与配置详解

    标签:配置 tomcat 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto. ...

  2. Cilium架构 (Cilium 2)

    Cilium架构 译自:http://docs.cilium.io/en/stable/architecture/ 本文档描述了Cilium的架构.它通过记录BPF数据路径(datapath)的钩子来 ...

  3. 数论-质因数(gcd) UVa 10791 - Minimum Sum LCM

    https://vjudge.net/problem/UVA-10791/origin 以上为题目来源Google翻译得到的题意: 一组整数的LCM(最小公倍数)定义为最小数,即 该集合的所有整数的倍 ...

  4. 别人用钱,而我用python爬虫爬取了一年的4K高清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...

  5. E - Dungeon Master BFS

    [NWUACM] 你被困在一个三维的空间中,现在要寻找最短路径逃生!空间由立方体单位构成你每次向上下前后左右移动一个单位需要一分钟你不能对角线移动并且四周封闭是否存在逃出生天的可能性?如果存在,则需要 ...

  6. PHP函数:fwrite

    fwrite()  - 写入文件(可安全用于二进制文件) 说明: fwrite ( resource $handle , string $string [, int $length ] ) : int ...

  7. 详解 通道 (Channel 接口)

    在本篇博文中,本人主要讲解NIO 的两个核心点 -- 缓冲区(Buffer) 和 通道 (Channel)之一的 缓冲区(Buffer), 有关NIO流的其他知识点请观看本人博文<详解 NIO流 ...

  8. Golang交付至Kubernetes

    目录 0.前言 1.Go服务构建 1.1.制作Go服务镜像底包 1.2.制作slave基础镜像底包 1.2.1.Golang镜像 1.2.2.Docker镜像 2.创建golang流水线 3.流水线构 ...

  9. 实战 | 将Apache Hudi数据集写入阿里云OSS

    1. 引入 云上对象存储的廉价让不少公司将其作为主要的存储方案,而Hudi作为数据湖解决方案,支持对象存储也是必不可少.之前AWS EMR已经内置集成Hudi,也意味着可以在S3上无缝使用Hudi.当 ...

  10. Mysql数据操作指令

    -----多数据插入-----只要写一次insert指令,但是可以直接插入多条记录insert into table values(),(),(); 主键冲突我们插入值的时候,主键中已经存在某个值,插 ...