Junitでmockmvcを使用してアクション応答でリダイレクトをテストする必要があります
コントローラー.java
@ActionMapping(param="submit")
public void handleSubmit(ActionRequest req, ActionResponse res) {
...
res.sendRedirect("https://google.co.in"):
}
ControllerTest.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 からの post perform で呼び出されないことです。
送信のクリック時のブラウザの URL は次のようになりますaction/rparam=action=submit.wsp