专栏首页用户6517667的专栏springboot之单元测试

springboot之单元测试

来源:http://www.51testing.com

springboot在写完之后,肯定都需要进行单元测试,如下给出一些样例

  工程层次结构如图

  代码如下:

  controller:

package com.rookie.bigdata.controller;  import com.rookie.bigdata.domain.User;  import com.rookie.bigdata.service.UserService;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.web.bind.annotation.GetMapping;  import org.springframework.web.bind.annotation.RestController;  /**  * controller层  * Created by on 2018/9/28.  */  @RestController  public class UserController {  @Autowired  private UserService userService;  /**  * 查询用户  *  * @return  */  @GetMapping(value = "/user")  public User findUser() {  return userService.findOne(10);  }  }

  User:

package com.rookie.bigdata.domain;  /**  * domain实体对象  * Created by on 2018/9/28.  */  public class User {  private int id;  private String name;  private Integer age;  public Integer getAge() {  return age;  }  public void setAge(Integer age) {  this.age = age;  }  public User() {  }  public int getId() {  return id;  }  public void setId(int id) {  this.id = id;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  @Override  public String toString() {  return "User{" +  "id=" + id +  ", name='" + name + '\'' +  ", age=" + age +  '}';  }  }

  service:

package com.rookie.bigdata.service;  import com.rookie.bigdata.domain.User;  import org.springframework.stereotype.Service;  /**  * service层  * Created by on 2018/9/28.  */  @Service  public class UserService {  public User findOne(Integer id) {  User user = new User();  user.setId(id);  user.setName("张三");  user.setAge(23);  return user;  }  }

  启动程序:

package com.rookie.bigdata;  import org.springframework.boot.SpringApplication;  import org.springframework.boot.autoconfigure.SpringBootApplication;  import org.springframework.scheduling.annotation.EnableScheduling;  /**  * 应用程序启动类  * Created by on 2018/8/2.  */  @SpringBootApplication  public class Application {  public static void main(String[] args) {  SpringApplication.run(Application.class, args);  }  }

  测试类:

package com.rookie.bigdata.controller;  import org.junit.Test;  import org.junit.runner.RunWith;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;  import org.springframework.boot.test.context.SpringBootTest;  import org.springframework.http.MediaType;  import org.springframework.test.context.junit4.SpringRunner;  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.result.MockMvcResultMatchers;  import static org.junit.Assert.*;  /**  * 测试contoller层  * Created by on 2018/9/28.  */  @RunWith(SpringRunner.class)  @SpringBootTest  @AutoConfigureMockMvc  public class UserControllerTest {  @Autowired  private MockMvc mvc;  @Test  public void findUser() throws Exception {  // mvc.perform(MockMvcRequestBuilders.get("/user"))  // .andExpect(MockMvcResultMatchers.status().isOk());  MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get("/user"))  .andExpect(MockMvcResultMatchers.status().isOk())//模拟发送get请求  .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8))//预期返回值的媒体类型 application/json;charset=UTF-8  .andReturn();//返回执行的请求结果  System.out.println(mvcResult.getResponse().getContentAsString());  }  }

package com.rookie.bigdata.service;  import com.rookie.bigdata.domain.User;  import org.junit.Assert;  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.test.context.junit4.SpringRunner;  /**  * 测试service层  * Created by on 2018/9/28.  */  @RunWith(SpringRunner.class)  @SpringBootTest  public class UserServiceTest {  @Autowired  private UserService userService;  @Test  public void findOne() throws Exception {  User user = userService.findOne(1);  Assert.assertEquals(new Integer(23),user.getAge());  }  }

欢迎参加众测:

https://wap.ztestin.com/site/register?usercode=FAAAQwMQGAAXAwQBA3QhExcDHAQDPjVaABMIQg%3D%3D

本文分享自微信公众号 - 软件测试培训(iTestTrain),作者:软件测试培训

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java单元测试——Mock技术配置

    由于在这里AccountManager.java仅仅做了一个interface,我们主要Mock的是这个类。这几个类的类关系图如下:

    小老鼠
  • springboot 单元测试

      但这样经常会一测就要测一整块,相对单元测试来说定位问题比较麻烦,单元测试能帮助我们拆分方法,单独测试些关键的代码、功能,是日常开发中必备的技能,同时也是各大...

    小老鼠
  • 前期准备,搭建渗透测试环境

      我们会使用一个叫Virtual Box的程序来搭建我们的渗透测试的测试环境。 我们可以使用Virtual Box在我们当前系统中创建虚拟机,在我们的实验中我...

    小老鼠
  • rabbitMq实现延时队列 原

        rabbitMq是受欢迎的消息中间件之一,相比其他的消息中间件,具有高并发的特性(天生具备高并发高可用的erlang语言编写),除此之外,还可以持久化,...

    chinotan
  • Spring boot with Scheduling

    本文节选自《Netkiller Java 手札》 http://www.netkiller.cn/java/spring/boot/index.html 11....

    netkiller old
  • Spring 中 AOP 的实现

    AOP 称为面向切面编程,在程序开发中,AOP 技术可以在不改变原有方法代码的情况下,把逻辑直接插入到方法上。Spring AOP 的大致原理主要依靠的是动态代...

    水货程序员
  • Spring Boot:整合Shiro权限框架

    Shiro是Apache旗下的一个开源项目,它是一个非常易用的安全框架,提供了包括认证、授权、加密、会话管理等功能,与Spring Security一样属基于权...

    朝雨忆轻尘
  • SpringCloud的入门学习之Eureka(高可用注册中心HA)构建Provider服务、Consumer服务

      使用springboot的多环境配置,来搭建Eureka的高可用集群式部署。由于使用的是maven构建的springboot项目,所以首先引入pom.xml...

    别先生
  • Spring Boot 如何整合多个数据源?

    SpringBoot现在是很多很多公司应用的后端框架,因为它搭建快,能更好、更快速的整合其他第三方。那么随着业务的不断扩展,业务量的增加,这时候就会牵扯到分库分...

    Java_老男孩
  • SpringBoot如何整合多个数据源,看这篇就够了

    SpringBoot现在是很多很多公司应用的后端框架,因为它搭建快,能更好、更快速的整合其他第三方。那么随着业务的不断扩展,业务量的增加,这时候就会牵扯到分库分...

    一个程序员的成长

扫码关注云+社区

领取腾讯云代金券