<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
파일: src/main/java/ - com.ds.web - HomeController.java
package com.ds.web;import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
@RequestMapping(value = "/p", method = RequestMethod.POST)
public String p(@RequestParam("no")int no ,Model model) {
System.out.println(no);
model.addAttribute("list", "abc");
return "redirect:/";
}
}
파일: src/test/java/ - com.ds.web - HomeControllerTest
package com.ds.web;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.Before;
import org.junit.Test;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
public class HomeControllerTest {
private MockMvc mvc = null;
@Before
public void setup() {
mvc =
MockMvcBuilders.standaloneSetup(new HomeController()).build();
}
//테스트하기전 테스트를 할 컨트롤러 객체 생성
@Test
public void test() throws Exception {
MockHttpServletRequestBuilder p
= post("/p").param("no", "1");
mvc.perform(p)
.andDo(print())
.andExpect(status().is3xxRedirection())
.andExpect(model().attributeExists("list"));
//get방식으로 호출하면 serverTime의 attribute값이 존재해야함.
mvc.perform(get("/"))
.andDo(print())
.andExpect(status().is2xxSuccessful())
.andExpect(model().attributeExists("serverTime"));
}
}
댓글 없음:
댓글 쓰기