为什么JUnitMockMVCrequestBuilders没有发送请求?

y53ybaqx  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(217)

我的目标是为端点编写自动化测试。其目的是检查sql注入的端点漏洞。
当前的里程碑是发送一个没有正文的请求。预期结果是java应用程序将打印一个警告日志(此警告日志是由 Postman 的请求引起的):

2020-11-14 15:31:17.801  WARN 18240 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public org.springframework.http.ResponseEntity<?> com.example.bankaccount.controller.LoginController.login(com.example.bankaccount.model.User_LoginModel)]

实际结果是,java应用程序没有打印警告日志/没有发出任何请求。
src/java/com.example.bankaccount/controller/logincontrollertest.java

package com.example.bankaccount.controller;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;

@SpringBootTest
@AutoConfigureMockMvc
class LoginControllerTest {

  @Autowired
  private MockMvc mockMvc;

  @Test
  void login() throws Exception {
//    Map<String, String> requestBody = new HashMap<>();
//    requestBody.put("User_ID", "abcd1234");
//    requestBody.put("PIN", "123456");

    this.mockMvc.perform(
            MockMvcRequestBuilders.post("/api/v1/login")
//                    .contentType(MediaType.APPLICATION_JSON)
//                    .content(requestBody.toString())
    )
            .andExpect(MockMvcResultMatchers.status().isOk());
  }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题