0

需要在 Junit 中使用 mockmvc 测试动作响应中的重定向

控制器.java

@ActionMapping(param="submit")
public void handleSubmit(ActionRequest req, ActionResponse res) {
  ...
  res.sendRedirect("https://google.co.in"):
}

控制器测试.java

  import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
  import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrl;
  import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;

public ControllerTest {
    private MockMvc mockmvc;

    @Before
    public void setup() {
      controller = new Controller();
      mockmvc = standaloneSetup(controller).build();
    }

    @Test
    public void redirectTest() throws Exception {
       mockMvc.perform(post("/action").param("submit", "value")).
                    andExpect(redirectedUrl("https://google.co.in"));
    }
}

问题是,在 Junit 的后期执行中没有调用控制器方法。

单击提交时浏览器中的 url 看起来像action/rparam=action=submit.wsp

4

0 回答 0