Java 带有MockMvc post请求的Junit Spring Portlet
需要在Junit中使用mockmvc测试动作中的重定向响应 Controller.javaJava 带有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
@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
。