springBoot单元测试案例

标签: springBoot 单元测试
26人阅读 评论(0) 收藏 举报
分类:

解释说明:

    1. Spring测试框架提供MockMvc对象,可以在不需要客户端-服务端请求的情况下进行MVC测试,完全在服务端这边就可以执行Controller的请求,跟启动了测试服务器一样。

    2.perform(get(...))建立web请求。在我们的第三个用例中,通过MockMvcRequestBuilder执行GET请求。

andExpect(...)可以在perform(...)函数调用后多次调用,表示对多个条件的判断,这个函数的参数类型是ResultMatcher接口,在MockMvcResultMatchers这这个类中提供了很多返回ResultMatcher接口的工具函数。这个函数使得可以检测同一个web请求的多个方面,包括HTTP响应状态码(response status),响应的内容类型(content type),会话中存放的值,检验重定向、model或者header的内容等等。

代码如下:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Train01Application.class)
@WebAppConfiguration
public class Train01ApplicationTests {
   @Autowired
   private WebApplicationContext context;

   private MockMvc mockMvc;

   private ObjectMapper mapper=new ObjectMapper();
   @Before
   public void setupMockMvc() throws Exception{
      mockMvc= MockMvcBuilders.webAppContextSetup(context).build();
   }

   @Test
   public void testSelect() throws Exception {
      mockMvc.perform(MockMvcRequestBuilders.post("/customer/list")
            .contentType(MediaType.APPLICATION_JSON_UTF8)
              .content("{   \"ciname\":\"\",\"cisex\":2,\"ciareacode\":\"310107\",\"ciofficename\":\"\" }"))
              .andExpect(MockMvcResultMatchers.status().isOk())
              .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8))
              .andDo(MockMvcResultHandlers.print());
   }
   @Test
   public void testAdd() throws Exception {
      mockMvc.perform(MockMvcRequestBuilders.post("/customer/add")
            .contentType(MediaType.APPLICATION_JSON_UTF8)
            .content("{\n" +
                  "       \"ciname\":\"李四\",       \n" +
                  "       \"citelephone\":\"112121212\",   \n" +
                  "       \"cisex\":0,        \n" +
                  "       \"cibirthday\":\"19940808\",  \n" +
                  "       \"cizipcode\":\"14000\",    \n" +
                  "       \"cifax\":\"asfgafas\",    \n" +
                  "       \"ciofficename\":\"上海翰都1\",     \n" +
                  "       \"ciareafullname\":\"上海市-市辖区-普陀区\",    \n" +
                  "       \"ciaddress\":\"零陵路\",       \n" +
                  "       \"cipassword\":\"123\",     \n" +
                  "       \"ciremark\":\"新增客户功能测试5\"       \n" +
                  "}"))
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8))
            .andDo(MockMvcResultHandlers.print());
   }
   @Test
   public void testUpdate() throws Exception {
      mockMvc.perform(MockMvcRequestBuilders.post("/customer/update")
            .contentType(MediaType.APPLICATION_JSON_UTF8)
            .content("{\n" +
                  "\t   \"ciid\":65,\n" +
                  "       \"ciname\":\"王五\",       \n" +
                  "       \"citelephone\":\"112121212\",   \n" +
                  "       \"cisex\":0,        \n" +
                  "       \"cibirthday\":\"19940808\",  \n" +
                  "       \"cizipcode\":\"14000\",    \n" +
                  "       \"cifax\":\"asfgafas\",    \n" +
                  "       \"ciofficename\":\"上海翰都1\",     \n" +
                  "       \"ciareafullname\":\"上海市-市辖区-普陀区\",    \n" +
                  "       \"ciaddress\":\"零陵路\",       \n" +
                  "       \"cipassword\":\"123\",     \n" +
                  "       \"ciremark\":\"新增客户功能单元第6次测试\"       \n" +
                  "}"))
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8))
            .andDo(MockMvcResultHandlers.print());
   }

}

查看评论

关于android、java单元测试 案例

1、首先有(创建)一个Android工程  :MainActivityProject       MainActivity 中有待测试的方法、数据。   例如:      public int add...
  • ding1145536113
  • ding1145536113
  • 2015-04-22 16:09:51
  • 355

例解:集成测试用例与单元测试用例的区别

函数一: getMaxInTwo(int a,int b) { if a>=b return a; else return b; } 函数二: getMaxInThree(int a,int b,in...
  • dylanren
  • dylanren
  • 2009-12-08 16:15:00
  • 2896

.Net 单元测试案例

  • 2017年03月10日 22:27
  • 131KB
  • 下载

算法之B树

package com.eshore.sweetop.exdataframe;public class BTree {    private BNode root;    private int mi...
  • lastsweetop
  • lastsweetop
  • 2008-10-31 13:44:00
  • 1310

spring boot 测试实例

  • 2017年09月18日 12:03
  • 47.88MB
  • 下载

JUnit最简单的测试案例

需要测试的类: package cn.edu.junit; public class Calculate { //加 public int add(int a,int b){ return...
  • u012110719
  • u012110719
  • 2015-04-25 08:55:19
  • 974

单元测试用例设计例子

  • 2015年05月14日 13:46
  • 67KB
  • 下载

java单元测试

  • 2014年09月10日 22:56
  • 1.3MB
  • 下载

php单元测试

人们往往会说:既然单元测试这么好,为什么那么多人还是不大愿意去写单元测试呢?有以下几种理解上的误曲:   1、认为编写单元测试太浪费时间。虽然目前很多IDE工具都为编写单元测试建立好了框架,但还是要...
  • u011986449
  • u011986449
  • 2014-04-21 08:43:43
  • 1954

android 单元测试案例

首先,我们来了解一下android的测试类的层次结构: 可以看出android中的测试方法主要有AndroidTextCase和InstrumentationTextCase。在这篇文章中,...
  • u011467537
  • u011467537
  • 2015-12-08 11:23:28
  • 647
    个人资料
    等级:
    访问量: 78
    积分: 50
    排名: 177万+
    文章存档