首页 > 代码库 > spring-boot Test for Controller
spring-boot Test for Controller
spring-boot controller 测试示例:
单元测试类
package com.zzhi;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.ObjectWriter;import com.fasterxml.jackson.databind.SerializationFeature;import com.sun.org.apache.xerces.internal.xs.LSInputList;import javafx.application.Application;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.http.MediaType;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.MvcResult;import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;import org.springframework.test.web.servlet.setup.MockMvcBuilders;import org.springframework.web.context.WebApplicationContext;import java.nio.charset.Charset;import java.util.ArrayList;import java.util.List;import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;/** * Created by zhangzhii on 2017/7/13. */@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = MaventestApplication.class)@WebAppConfigurationpublic class HomeControllerTest { public static final MediaType APPLICATION_JSON_UTF8 = new MediaType(MediaType.APPLICATION_JSON.getType(), MediaType.APPLICATION_JSON.getSubtype(), Charset.forName("utf8")); @Autowired private WebApplicationContext wac; private MockMvc mockMvc; @Before public void setUp() throws Exception { mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); } @Test public void test1() throws Exception { String name="zzhi"; MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/test1?name="+ name)). andDo(print()).andReturn(); System.out.println(result.getResponse().getContentAsString()); } @Test public void test02() throws Exception { User user = new User(28, "zzhi"); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false); ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter(); String requestBody = ow.writeValueAsString(user); System.out.println(requestBody); MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post("/test2?name=zzhi"). contentType(APPLICATION_JSON_UTF8).content(requestBody)) .andDo(print()).andReturn(); System.out.println(result); } @Test public void test03() throws Exception { List<User> list = new ArrayList<>(); list.add(new User(28, "zzhi")); list.add(new User(32, "wang")); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false); ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter(); String requestBody = ow.writeValueAsString(list); System.out.println(requestBody); MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post("/test3?name=zzhi"). contentType(APPLICATION_JSON_UTF8).content(requestBody)) .andDo(print()).andReturn(); System.out.println("结果:"+result.getResponse().getContentAsString()); } @Test public void test04() throws Exception { Order order=new Order(); Address address=new Address(); address.setAdd1("陕西西安"); List<User> users = new ArrayList<>(); users.add(new User(28, "zzhi")); users.add(new User(32, "wang")); order.setUsers(users); order.setAddress(address); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false); ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter(); String requestBody = ow.writeValueAsString(order); System.out.println(requestBody); MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post("/test4?age=28"). param("name","张智"). contentType(APPLICATION_JSON_UTF8).content(requestBody)) .andDo(print()).andReturn(); System.out.println("结果:"+result.getResponse().getContentAsString()); }}
Controller 类
package com.zzhi;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;import java.util.List;/** * Created by zhangzhii on 2017/7/12. */@RestController()public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class); @RequestMapping("/index") @ResponseBody public String Home() { logger.info("home/index 开始"); return "hello world 111"; } @RequestMapping("/test1") @ResponseBody public String test1(String name) { return name; } @RequestMapping(// consumes="application/json",// produces="application/json", method=RequestMethod.POST, value="/test2") @ResponseBody public String test2(@RequestBody User user,String name) { return user.toString(); } @RequestMapping( method=RequestMethod.POST, value="/test3") @ResponseBody public String test3(@RequestBody List<User> users,String name) { return Integer.toString( users.size()); } @RequestMapping( method=RequestMethod.POST, value="/test4") @ResponseBody public String test4(HttpServletRequest request,@RequestBody Order order, String age) { String name= request.getParameter("name"); return age; }}
PO:
package com.zzhi;/** * Created by zhangzhii on 2017/7/14. */public class Address { public Address() { } @Override public String toString() { return "Address{" + "add1=‘" + add1 + ‘\‘‘ + ‘}‘; } public String getAdd1() { return add1; } public void setAdd1(String add1) { this.add1 = add1; } private String add1;}
package com.zzhi;import com.fasterxml.jackson.annotation.JsonProperty;import java.util.List;/** * Created by zhangzhii on 2017/7/14. */public class Order { public Order(){ } public void setUsers(List<User> users) { this.users = users; } @JsonProperty("users") private List<User> users; public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } private Address address; public List<User> getUsers() { return users; }}
package com.zzhi;import java.util.Date;/** * Created by zhangzhii on 2017/7/14. */public class User { public User(){ } public User(int age ,String name) { this.age=age; this.name=name; this.createTime= new Date(); } private int age; private String name; @Override public String toString() { return "User{" + "age=" + age + ", name=‘" + name + ‘\‘‘ + ", createTime=" + createTime + ‘}‘; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } private Date createTime; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
pox:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.7</version> </dependency> </dependencies>
spring-boot Test for Controller
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。