使用mokito进行junit spring测试时json解析错误

时间:2018-01-30 21:31:17

标签: java json spring junit

我试图创建一个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吗? 我一直坐在这个问题上一天,并希望有人来帮助我。 美好的一天``

0 个答案:

没有答案