SSM项目各层单元测试
2019独角兽企业重金招聘Python工程师标准>>>
数据层的测试
数据主要使用Mybatis,因此注入的时候也只需要引入Mybatis相关的配置
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/spring-dao.xml" })
public class SeckillDaoTest {// 注入Dao实现类依赖@Resourceprivate SeckillDao seckillDao;@Testpublic void testReduceNumber() {long seckillId=1000;Date date=new Date();int updateCount=seckillDao.reduceNumber(seckillId,date);System.out.println(updateCount);}
}
业务层测试
业务层会涉及到多表的操作,因此需要引入事务。而为了方便重复测试,添加回滚功能。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml" })
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
@Transactional
public class SeckillServiceImplTest {private final Logger logger = LoggerFactory.getLogger(this.getClass());@Autowiredprivate SeckillService seckillService;@Testpublic void testGetSeckillList() {List<Seckill> seckills = seckillService.getSeckillList();System.out.println(seckills);}
}
控制层测试
控制层主要模拟用户请求,这里设计到http请求,我们可以使用mock测试
@WebAppConfiguration
@ContextConfiguration({ "classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml","classpath:spring/spring-web.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
@Transactional
public class SeckillControllerTest {@Autowiredprotected WebApplicationContext context;private MockMvc mockMvc;private String listUrl = "/seckill/list";private String detailUrl = "/seckill/{seckillId}/detail";private String expserUrl = "/seckill/{seckillId}/exposer";private long seckillId = 1000L;@Beforepublic void setUp() {this.mockMvc = webAppContextSetup(this.context).alwaysExpect(status().isOk()).alwaysDo(print()).build();}@Testpublic void testList() throws Exception {this.mockMvc.perform(get(listUrl)).andExpect(view().name("list"));}@Testpublic void testExistDetail() throws Exception {this.mockMvc.perform(get(detailUrl, seckillId)).andExpect(view().name("detail")).andExpect(model().attributeExists("seckill"));}
}
转载于:https://my.oschina.net/kimisme/blog/1635196
SSM项目各层单元测试相关推荐
- SSM项目使用junit单元测试时Mybatis通配符加载Mapper不能正常加载
问题描述:项目使用maven build 以及tomcat run能够正常运行,但是使用junit单元测试时却报错误 Caused by: java.lang.IllegalArgumentExcep ...
- 使用IDEA+maven配置SSM项目步骤,以及配置项目过程中遇到的各种坑(SSM配置文件加载问题,使用注解开发问题,maven开发SSM项目步骤)
问题概览 1. 更改springmvc配置文件的默认位置,但是"classpath:文件路径",路径明明正确,但是就是识别不到,idea报找不到配置文件的错误. 2. 使用myba ...
- 分模块创建ssm项目
使用Idea分模块创建ssm项目,SpringMVC+Spring+MyBatis+Maven整合 一.简介 二.开发工具 三.idea创建maven工程 1.新建maven 父工程 2.创建子模块 ...
- idea搭建SSM项目这一篇就够了
目录 1. 创建Maven项目 1.1 创建一个新的项目 (请先连接好网络) 1.2 选择maven --> 选择你的jdk版本 --> 勾选Create from archetype ...
- java ssm项目经验描述_第一个SSM完整项目开发心得
博主因为打算要考研,所以为了给自己留一手后路.学习了SSM框架.这学期就做了一个完整的SSM项目.(如果考研失败就去外包做一波CRUD boy) 所以边考研边利用业余时间做了一学期,接着期末一周的We ...
- 将ssm项目和普通java项目打包
1.先说普通的java打包 (1)第一步 (2)第二步 (3)第三步 (4)第四步 PS:这一步选择你要打包的那个java (5)第五步 PS:可以改名字 (6)第六步 PS:之后弹出这个 (7)最后 ...
- SSM中进行Junit单元测试时无法注入service
场景 在SSM项目中进行Junit单元测试时调用外部的service时,在使用时打断点发现为空. 代码如下: public class AlipayTester {private PassOrderS ...
- SSM+Maven+Eclipse进行单元测试时提示找不到Config配置项/文件
场景 在Eclipse+SSM+Maven中进行单元测试时,会提示Config配置文件/信息找不到 原因 在测试类中调用了正常业务中的方法/接口,而在方法中有用到常量的地方, 而常量又是在封装的常量类 ...
- 用idea搭建SSM项目,原来这么简单
目录 前言 软件环境 创建项目 数据库文件 配置文件 pom.xml log4j.properties jdbc.properties applicationContext.xml spring-mv ...
最新文章
- 设计模式:享元模式(Flyweight Pattern)
- Arcgis10.3在添加XY数据时出现问题
- java中使用akka手记三 cluster详例
- aix 卸载mysql_AIX 删除数据库及集群软件
- 惊了!最通俗易懂的Djongo入门竟然在这里!
- oracle数据库管理web,Oracle 数据库WEB维护管理软件
- 协程 vs 线程 demo
- 小数据作为解题关键:
- .net 自定义控件显示及传参--转
- 服务器BIOS、BMC、IPMI、EFI、UEFI等知识详解
- java 判断是合法语言_使用Java 怎么实现一个判断IP地址是否合法的功能
- 使用Arduino Pro Mini和BC95-B5连接物联网
- vue 实现简约留言板
- AdxMenu真的不错!我写了个中文的使用说明如下,希望大家用得着
- co88 sap 实际结算_SAP那些事-技巧篇-58-冲销CO88前期结算到本月
- 玫瑰编程--python
- 土是独体字结构吗_发是独体字结构吗
- 【十二】Python全栈之路--推导式_生成器
- 厦门计算机中专学校,厦门有哪些中专学校
- 三星直逼英特尔,半导体厂商排名起起伏伏