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();
}
}
}