MOCK 基本使用例子
package com.icil.esolution.orders; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.HashMap;
import java.util.List; import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.StringPart;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext; import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.icil.esolution.pojo.InventoryQueryVO;
import com.icil.esolution.pojo.SOOrderVO;
import com.icil.esolution.pojo.TOA;
import com.icil.esolution.utils.JsonUtils;
import com.icil.esolution.utils.URLHttpUtils;
/**
*
* @ClassName: OrderControllerTest
* @Description:
* @Author: Sea
* @Date: 12 july 2018 5:02:06 PM
* @Copyright: 2018 ICIL All rights reserved.
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderControllerTest {
@Autowired
private WebApplicationContext wac; private MockMvc mockMvc; @Before
public void Setup(){
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
} @Test
public void TestQuerySOOrder() throws Exception {//customerCode, String warehouseCode
String result = mockMvc.perform(
get("/order/querySOOrder")
.param("customer", "PDX000055")
.param("warehouseCode", "ULHKG")
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString(); System.out.println(result);
} @Test
public void testUploadExcel() throws Exception { // File file = new File("/home/sea/Desktop/esolution/E+Outbound_Template.xls");
// byte[] readFileToByteArray = FileUtils.readFileToByteArray(file);
// String result = mockMvc.perform(fileUpload("/order/uploadExcel")
// .file(new MockMultipartFile("ePlusExcel", "test.xls", "multipart/form-data", readFileToByteArray))
// .param("warehouseCode", "ULHKG")
// .param("customer","PDX000031"))
// .andExpect(status().isOk())
// .andReturn().getResponse().getContentAsString();
// System.out.println(result); File srcFile=new File("/home/sea/Desktop/esolution/Outbound_Template_eplus.xls");
String originalFileName = srcFile.getName();
InputStream is = new FileInputStream(srcFile); //Upload excel template and return Order TO for confirmation
MockMultipartFile uploadFile = new MockMultipartFile("ePlusExcel",originalFileName , null, is); MvcResult andReturn = mockMvc.perform(fileUpload("/order/uploadExcel").file(uploadFile).param("warehouseCode", "ULHKG").param("customer","PDX000031").accept("application/json;charset=UTF-8"))
.andExpect(status().isOk())
.andExpect(content().contentType("application/json;charset=UTF-8"))
.andReturn();
System.out.println(andReturn); } /**
* POST方式 传带文件的调用
* @return
* @throws Exception
*/
@Test
public void PostMethodFileTest() throws Exception{
System.out.println("开始");
String targetUrl="http://localhost:8080/order/uploadExcel";
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(targetUrl);
try{
File srcFile=new File("/home/sea/Desktop/esolution/E+Outbound_Template.xls"); InputStream ePlusExcels = new FileInputStream(srcFile); FilePart filePart = new FilePart("ePlusExcel",srcFile);//文件参数
//new FilePart("ss", (PartSource) ePlusExcels); // StringPart ePlusExcel=new StringPart("ePlusExcel", ePlusExcels.toString());
StringPart customer= new StringPart("customer", "PDX000031");
StringPart warehouseCode=new StringPart("warehouseCode", "ULHKG");
// method.setParameter("customer", "PDX000031");
// method.setParameter("warehouseCode", "ULHKG");
// StringPart questionId = new StringPart("questionId","10001");//普通参数
// StringPart userId = new StringPart("userId","765709");//普通参数
// StringPart homeworkId = new StringPart("homeworkId","950");//普通参数 Part[] parts ={filePart,customer,warehouseCode};
MultipartRequestEntity mre=new MultipartRequestEntity(parts ,method.getParams()); //封装了普通字段和文件字段
method.setRequestEntity(mre);
int result = client.executeMethod(method);
if (result == HttpStatus.SC_OK) {
InputStream in = method.getResponseBodyAsStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[];
int len = ;
while ((len = in.read(buffer)) != -) {
baos.write(buffer, , len);
}
String response = URLDecoder.decode(baos.toString(), "UTF-8");
System.out.println("response*****"+response);
} else {
throw new Exception("HTTP ERROR Status: " + method.getStatusCode() + ":" + method.getStatusText());
}
}finally {
method.releaseConnection();
}
} @Test
public void testquerySOOrderDetail() throws Exception {//customerCode, String warehouseCode
String result = mockMvc.perform(
get("/order/querySOOrderDetail")
.param("orderNo", "SO-HKG-00152542")
.param("warehouseCode", "ULHKG")
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString(); System.out.println(result);
} @Test
public void testQueryInventory() throws UnsupportedEncodingException, Exception{
String result = mockMvc.perform(get("/order/queryInventory")
.param("warehouseCode", "ULHKG")
.param("customerCode", "PDX000031")
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString();
System.out.println(result); } @Test
public void testName() throws Exception {
HashMap<String, Object> hashMap = new HashMap<>(); hashMap.put("aa", "ss");
String objectToJson = JsonUtils.objectToJson(hashMap);
System.out.println(objectToJson);
} @Test
public void TestapiQueryOrderDetails() throws Exception { Header header = URLHttpUtils.getBasicAuthorizationHeader("testmsg1", "");
String response = URLHttpUtils.getURLRequest("https://192.168.18.176/wosedi/ws/apiQueryOrderDetails?orderNo=SO-HK-00152542&warehouseCode=ULHKG", header);
String exception = MDC.get("concectException");
System.err.println("exception is ******************:"+exception);
System.out.println(response); } @Test
public void testJsontoList() throws Exception {
File file = new File("src/test/java/resource/SoOrderVo.json");
String data = FileUtils.readFileToString(file);
System.err.println(data);
//Object json = JSON.toJSON(data);
// SoOrderVO soOrderVO = JSON.parseObject(data, SoOrderVO.class); //List<SoOrderVO> jsonToList = JsonUtils.jsonToList(data, SoOrderVO.class);
Gson gson = new Gson();
//SoOrderVO fromJson = gson.fromJson(data, SoOrderVO.class); //List<SoOrderVO> jsonToList =gson.fromJson(data, new TypeToken<List<SoOrderVO>>() {}.getType());
List<SOOrderVO> jsonToList = JsonUtils.gsonTOList(data, SOOrderVO.class);
System.out.println("result is :"+jsonToList); } @Test
public void testQueryOrderAll() throws Exception {
File file = new File("src/test/java/resource/QueryOrderALL.json");
String data = FileUtils.readFileToString(file);
System.err.println(data);
//Object json = JSON.toJSON(data);
// SoOrderVO soOrderVO = JSON.parseObject(data, SoOrderVO.class); //List<SoOrderVO> jsonToList = JsonUtils.jsonToList(data, SoOrderVO.class);
Gson gson = new Gson();
//SoOrderVO fromJson = gson.fromJson(data, SoOrderVO.class); List<SOOrderVO> jsonToList =gson.fromJson(data, new TypeToken<List<SOOrderVO>>() {}.getType());
System.out.println("this is first data"+jsonToList.get()); //List<SoOrderVO> jsonToList = JsonUtils.gsonTOList(data, SoOrderVO.class);
System.out.println("result is :"+jsonToList); } @Test
public void testGsontoList() throws Exception {
File file = new File("src/test/java/resource/inventoryQueryResponseData.json");
String data = FileUtils.readFileToString(file);
System.err.println(data);
//Object json = JSON.toJSON(data);
// SoOrderVO soOrderVO = JSON.parseObject(data, SoOrderVO.class);
//List<SoOrderVO> jsonToList = JsonUtils.jsonToList(data, SoOrderVO.class);
Gson gson = new Gson();
//SoOrderVO fromJson = gson.fromJson(data, SoOrderVO.class);
// List<InventoryQueryVO> jsonToList =gson.fromJson(data, new TypeToken<List<InventoryQueryVO>>() {}.getType());
List<InventoryQueryVO> jsonToList = JsonUtils.gsonTOList(data, InventoryQueryVO.class);
System.out.println("result is :"+jsonToList);
} @Test
public void testWOS4TOA() throws Exception {
File file = new File("src/test/java/resource/Wos4ResponseData.json");
String data = FileUtils.readFileToString(file,"UTF-8");
System.out.println(data);
Object json = JSON.toJSON(data);
TOA toa = JSON.parseObject(data, TOA.class); System.out.println(toa.getResult());
System.out.println(toa.getMesgs());
System.out.println(toa.getData()); } @Test
public void testJDK8DataFormart() throws Exception { DateTimeFormatter dateTimeFormater = DateTimeFormatter.ofPattern("yyyy-MM-dd HH-mm-ss");
LocalDateTime localDateTime = LocalDateTime.now();
Date date = new Date();
System.out.println("【----new date----】" + date);
System.out.println("【----未格式化之前----】" + localDateTime);
System.out.println("【----格式化之后----】"+dateTimeFormater.format(localDateTime)); } }
MOCK 基本使用例子的更多相关文章
- 说说初用 Mock 工具测试碰到的坑
我是一个在校实习生,作为一个程序猿,是个菜鸟中战斗机!对于测试,只写过一点点简单到不能再简单了的 Junit 单元测试的例子(因为当时这足以应付学校课程的内容与要求).这几天在公司里要真枪实弹做测试的 ...
- 【Python】解决测试依赖之 Mock模块的基本使用
什么是mock? Mock,顾名思义,模拟,在我们日常生活中或者影视作品中见得最多的可能就是预备飞行员的模拟训练,印象比较深的是电影<萨利机长>中的模拟器,经过几千次模拟,人们得出机长萨利 ...
- 单元测试-mock基础
本文较短,只是备份一下mock的几个常用基础例子方便复习 目录 介绍mock的使用例子 maven资源 <dependency> <groupId>org.mockito< ...
- google mock C++单元测试框架
转:google mock C++单元测试框架 2012-03-12 09:33:59 http://blog.chinaunix.net/uid-25748718-id-3129590.html G ...
- 使用Mockito进行单元测试【2】—— stub 和 高级特性[转]
一篇中介绍了Mockito的基本信息,现在接着介绍Mockito强大的stub功能 2. Mockito使用实例 5. 对连续的调用进行不同的返回 (iterator-style stubbing) ...
- 前端模拟后台返回数据之Mockjs
一.官方文档: https://github.com/nuysoft/Mock/wiki/Syntax-Specification 例子:http://mockjs.com/examples.html ...
- Mockito图书馆
转载:https://static.javadoc.io/org.mockito/mockito-core/2.12.0/org/mockito/Mockito.html#42 org.mockito ...
- 使用Powermock和mockito来进行单元测试
转载:http://blog.csdn.net/u013428664/article/details/44095889 简介 Mockito是一个流行的Mocking框架.它使用起来简单,学习成本很低 ...
- 学习Mockito - Mockito对Annotation的支持
学习Mockito - Mockito对Annotation的支持 博客分类: test junit工作 Mockito支持对变量进行注解,例如将mock对象设为测试类的属性,然后通过注解的方式@M ...
随机推荐
- 【多线程学习笔记整理】002_线程的停止、暂停、与yield
一.停止线程的三种方式 停止线程是多线程中的一个很重要的点,停止线程意味着在线程处理完当前任务之前终止正在做的操作,但是如果不能正确的操作,可能会发生不可预期的结果. 1)使用退出标志,使线程正常退出 ...
- 【java编程】java对象copy
实现java对象Copy的三种方式 一.克隆 implements Cloneable 二.序列化 implements Serializable 三.利用反射机制copy apache的BeanUt ...
- es6语法快速上手(转载)
一.相关背景介绍 我们现在大多数人用的语法javascript 其实版本是ecmscript5,也是就es5.这个版本己经很多年了,且完美被各大浏览器所支持.所以很多学js的朋友可以一直分不清楚es5 ...
- MSMQ-发送消息到远程专用队列path格式
在工作组模式下,远程访问专用队列.在网上找到一篇文章,翻译了一下. 最后结论,直接使用多元素格式名方式,利用IP地址直接对单个或多个目标发送消息 MessageQueue rmQ = new ...
- H.264帧结构详解
6.1.2.源码简单浏览 6.1.3.重点1:h.264帧结构6.1.4.重点2:帧结构分析软件的使用6.1.5.重点3:rtsp网络编程6.1.6.重点4:wireshark网络抓包工具的使用 6. ...
- vue 回车自动登录
原理: 在密码输入框加入事件:@keyup.enter.native 登录button加入事件:@click 代码: pug 语法: el-form(ref="loginForm" ...
- Nginx 下部署 HTTPS 与安全调优
什么是 HTTPS?# HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ...
- 大快DKhadoop安装教程与常见问题汇总
上周分别就DKHadoop的安装准备工作以及服务器操作系统配置写了两篇分享的文章,这是个人第一次尝试写一个系统性的分享文章,必然会有很多疏漏的地方,还望见谅吧.今天分享的是DKHadoop安装以及常见 ...
- oracle schema 白话文详解
概述: (一)什么Oracle叫用户(user): A user is a name defined in the database that can connect to and access ob ...
- 如何在 QWidget 窗口上弹出右键菜单
Title : QWidget 窗口上弹出右键菜单的两个方法 Solution 1 : 给一个 QWidget 添加 QActions,设置 QWidget 的 contextMenuPolicy 属 ...