Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有MockMvc post请求的Junit Spring Portlet_Java_Spring_Junit_Mockito_Mockmvc - Fatal编程技术网

Java 带有MockMvc post请求的Junit Spring Portlet

Java 带有MockMvc post请求的Junit Spring Portlet,java,spring,junit,mockito,mockmvc,Java,Spring,Junit,Mockito,Mockmvc,需要在Junit中使用mockmvc测试动作中的重定向响应 Controller.java @ActionMapping(param="submit") public void handleSubmit(ActionRequest req, ActionResponse res) { ... res.sendRedirect("https://google.co.in"): } import static org.springframework.test.web.servlet.r

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

Controller.java

@ActionMapping(param="submit")
public void handleSubmit(ActionRequest req, ActionResponse res) {
  ...
  res.sendRedirect("https://google.co.in"):
}
  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"));
    }
}
ControllerTest.java

@ActionMapping(param="submit")
public void handleSubmit(ActionRequest req, ActionResponse res) {
  ...
  res.sendRedirect("https://google.co.in"):
}
  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中执行post时没有调用控制器方法


单击submit,浏览器中的url看起来是
action/rparam=action=submit.wsp

我不认为Spring的WebMvc测试框架是为
@ActionMapping
设置的。如何设置告诉框架控制器侦听
action/*
?@StefanBirkner url将有参数“submit”。注释@ActionMapping(param=“submit”)将处理它。但是您必须在某处定义基本url
/action