我试图创建一个json来测试解码im插入new DecodeRequest("a3d3")
当我到达DecodeResponse("aaaddd")
时,在调试模式下期待MvcResult result = mockMvc.perform(requestBuilder).andReturn();
我发现错误,说明 JSON解析错误
这是我的代码:
@RunWith(SpringJUnit4ClassRunner.class)
@WebMvcTest(value = Controller.class, secure = false)
public class TestControllerDecodEncode {
@Autowired
private MockMvc mockMvc;
@MockBean
private Controller controller;
@Test
public void decode() throws Exception {
RequestEntity<DecodeRequest> beenSentToCheck = new RequestEntity<DecodeRequest>(new DecodeRequest("a3d3"),
HttpMethod.POST, new URI("http://localhost/decode"));
ResponseEntity<DecodeResponse> answerDecodeShouldBe = new ResponseEntity<DecodeResponse>(
new DecodeResponse("aaaddd"), HttpStatus.CREATED);
Mockito.when(controller.DecodeAnswer(beenSentToCheck.getBody())).thenReturn(answerDecodeShouldBe);
RequestBuilder requestBuilder = MockMvcRequestBuilders.post("/decode").accept(MediaType.APPLICATION_JSON)
.content(answerDecodeShouldBe.toString()).contentType(MediaType.APPLICATION_JSON);
MvcResult result = mockMvc.perform(requestBuilder).andReturn();
MockHttpServletResponse response = result.getResponse();
assertEquals(answerDecodeShouldBe, response.getStatus());
}
这就是im测试:
@RestController
public class Controller {
@RequestMapping(value = "/encode", method = RequestMethod.POST)
public ResponseEntity<EncodeResponse> Encodeanswer(@RequestBody EncodeRequest reqEn) {
String encoded = MyService.encode(reqEn.text);
return new ResponseEntity<EncodeResponse>(new EncodeResponse(encoded), HttpStatus.OK);
}
控制器调用该方法 MyService.encode(reqEn.text); 获取astring并返回astring。
两个类decodeRequest和响应是:
public class DecodeRequest {
public String text;
public DecodeRequest() {}
public DecodeRequest(String text) {
this.text = text;
};
}
public class DecodeResponse {
public String decode;
public DecodeResponse(String decode) {
this.decode = decode;
}
}
离开我可以正确传递json吗? 我一直坐在这个问题上一天,并希望有人来帮助我。 美好的一天``