junit+MockMvc/OkHttpClient 单元测试

1.基础类的封装 post方式

package com.xx.wallet.client.controller.base;

import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultHandler;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
/**
 * 类职责:测试公用类<br/>
 *     
 * <p>Title: BaseControllerTest.java</p>
 * <p>Description: </p>
 * <p>Copyright: </p>
 * <p>Company: </p>
 *  
 * <p>Author:Cent</p>
 * <p>CreateTime:2018年11月7日上午10:35:50
 */
public class BaseControllerTest {
	
	public void post(MockMvc mockMvc, String url, String params, String token) {
		String responseString = "";
		try {
			responseString = mockMvc.perform
			        (
			                MockMvcRequestBuilders.post(url)          //请求的url,请求的方法是post
			                		.contentType(MediaType.APPLICATION_JSON_UTF8)
			                		.content(params)
			                        .header("token", token)
			                        //get("/user/findUser").contentType(MediaType.APPLICATION_FORM_URLENCODED)//发送数据的格式
			                		//.param("username","zcj")   
				               		//.param("age","18")   
			                        
			        )
			        .andDo(print())         //打印出请求和相应的内容
			        .andReturn().getResponse().getContentAsString();
		} catch (Exception e) {
			e.printStackTrace();
		}   //将相应的数据转换为字符串
        System.out.println("------执行结果 = " + responseString);
	}
	
	private ResultHandler print() {
		return MockMvcResultHandlers.print();
	}
}

2.具体代码测试

package com.xx.wallet.client.controller;

import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import com.alibaba.fastjson.JSON;
import com.jp.wallet.WalletClientApplication;
import com.jp.wallet.client.controller.base.BaseControllerTest;
import com.xxxx.ues.service.facade.UesFacade;
import com.xxxx.ues.service.facade.request.DecryptRequest;
import com.xxxx.ues.service.facade.response.UesResponse;

/**
 * 类职责:订单相关的单元测试<br/>
 *     
 * <p>Title: TradeOrderControllerTest.java</p>
 * <p>Description: </p>
 * <p>Copyright: </p>
 * <p>Company: </p>
 *  
 * <p>Author:Cent</p>
 * <p>CreateTime:2018年11月7日下午2:45:49
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = WalletClientApplication.class)
public class TradeOrderControllerTest extends BaseControllerTest {

	@Autowired
	WebApplicationContext webApplicationContext;
	protected MockMvc mockMvc;
	
	@Autowired
	private UesFacade uesFacade;

	@Before
	public void init() {
		mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
	}

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Test
	public void testQueryOrderToPay() {
		String params = "{\"extention\":\"\",\"tradeNo\":\"20180320122311564100000000151\",\"memberId\":\"100001100008\"}";
		post(mockMvc, "/order/queryOrderToPay", params, "4e3f9fd38d7248c2b34206b953d8cda9");
	}
	
	@Test
	public void testDecrypt() {
		DecryptRequest request = new DecryptRequest();
		request.setTicket("P201605");
		// 创建代理接口实现
		UesResponse response = uesFacade.decrypt(request);
		System.out.println("++++++++"+JSON.toJSONString(response.getPlainData()));
	}
}	

3.OkHttpClient使用

package com.jp.cashier.client;
 
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
 
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
 
public class OkHttpClientTest {
     
     
    public static void main(String[] args) {
        //OkHttpClient测试
        OkHttpClient client = new OkHttpClient();
 
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, "{\n    \"tradeNo\": \"20180817032058121100000898428\",\n\t\"sTest\": \"1680\",\n\t\"bankcardId\": \"1680\",\n\t\"payPassword\":\"\",\n\t\"smsCode\":\"6073\",\n\t\"phoneCountry\":\"966\",\n\t\"phoneNo\":\"599999998\",\n\t\"mCode\":\"Ui51ICuL5YnswbB9JcYBBw==\",\n\t\"sysmCode\":\"123456\",\n\t\"extention\":\"{'ser':'123'}\"\n}");
        Request request = new Request.Builder()
          .url("http://127.0.0.1:9046/api/client/trade/quickPayment")
          .post(body)
          .addHeader("Content-Type", "application/json")
          .addHeader("Token", "a34ba74ab072437fbcd71e4ae919e1e4")
          .addHeader("TimeStamp", "2018-07-02 10:00:00")
          .addHeader("APIVersion", "2.0")
          .addHeader("Cache-Control", "no-cache")
          .addHeader("Postman-Token", "547b1ef5-bad0-43bc-aa5e-f4e457e46795")
          .build();
 
        try {
            Response response = client.newCall(request).execute();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值