这里分三种,1、测普通方法或通过原生java API接口调用 2、基于spring依赖注入调用 3、controller层调用

需要引入依赖:默认springboot已经引入

     <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

在src/test/java下建立test类

1、测普通方法或通过原生java API接口调用

public class commonTest {

    @Test
public void testPrint() {
System.out.println(2222222);
}
}

2、基于spring依赖注入调用 内部可以通过@autowired、@Resourced等注入对象实例

@RunWith(SpringRunner.class)
@SpringBootTest
public class applicationTest {
//注入的接口类
@Autowired
private TestService testService;
@Test
public void contextLoads() throws Exception{
testService.print();
}
}
public interface TestService {

    public void print()throws Exception;
}
@Service("testService")
public class TestServiceImpl implements TestService { @Override
public void print() throws Exception {
// TODO Auto-generated method stub
System.out.println("service print test...");
} }

3、 controller层调用

@SpringBootTest
public class ControllerTest {
private MockMvc mockMvc;
//@Before注解的表示在测试启动的时候优先执行,一般用作资源初始化。
//这里初始化生成controller类单例
@Before
public void setUp()throws Exception{
mockMvc=MockMvcBuilders.standaloneSetup(new TestController()).build();
}
@Test
public void controllerTest()throws Exception{
String returnJson = mockMvc.perform(MockMvcRequestBuilders.post("/list")).andReturn().getResponse().getContentAsString();
System.out.println(returnJson);
}
}
@RestController
public class TestController {
@RequestMapping(value="/list",method={RequestMethod.POST})
public List<TestVO> getTestList() {
List<TestVO> vos = new ArrayList<TestVO>();
TestVO vo = new TestVO();
vo.setAge(13);
vo.setName("薛邵");
vo.setSex(true);
vo.setDate(new Date());
vos.add(vo);
TestVO vo1 = new TestVO();
vo1.setAge(15);
vo1.setName("xiaoming");
vo1.setSex(false);
vo1.setDate(new Date());
vos.add(vo1);
return vos;
}
}

MockMvc 调用controller接口的几个示例:

A
//get请求一个查询/test/hhhhhhh/99,控制台打印http请求和响应信息
//print()方法,需要静态引入import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
mockMvc.perform(MockMvcRequestBuilders.get("/test/hhhhhhh/99").accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print());
打印示例如下:

其中Body= aaaaaaaaaaaaaaaaaaaaaaaahhhhhhh99即我们预期打印的内容,也就是controller接口返回的文本

B

//通过.addExpect来判断预期内容是否符合,如果符合控制台无信息,如果不符合,junit控制台会显示具体错误信息
//.accept(MediaType.APPLICATION_JSON_UTF8)
//这句主要是设置JSON返回编码,避免出现中文乱码问题
mockMvc.perform(MockMvcRequestBuilders.get("/test/hhhhhhh/99").accept(MediaType.APPLICATION_JSON_UTF8)).andExpect(MockMvcResultMatchers.content().string(Matchers.containsString("hhhhhhh991")));

C
//获取返回内容直接输出打印
String returnJson = mockMvc.perform(MockMvcRequestBuilders.post("/testvo")).andReturn().getResponse().getContentAsString();
System.out.println(returnJson);

D
//设置参数POST提交

mockMvc.perform(MockMvcRequestBuilders.post("/v")
// .param("age", "28")
// .param("name", "aaa")
// .param("list", "[\"bb\",\"cc\"]")
// .param("card", "123456789012345678")
// .param("date", "2019-10-01 11:09:11")
// .param("weight", "99.99")
// .param("sex", "true")
//// .param("tmp", "")
//// .param("phone", "")
// .param("dicimal", "18")
// .param("email", "aaa")
);

spring boot junit test的更多相关文章

  1. 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试

    前言 JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量. JUnit 测试框架具有以下重要特性: 测试工具 测试套件 测试运行器 测试分类 了 ...

  2. Spring boot Junit Test单元测试

    Spring boot 1.40 JUnit 4 需要依赖包 spring-boot-starter-test.spring-test 建立class,加上如下注解,即可进行单元测试,别的帖子里说要加 ...

  3. (27)Spring Boot Junit单元测试【从零开始学Spring Boot】

    Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性. 那么先简单说一下为什么要写测试用例 1. 可以避免测试点的遗漏,为了更好的进行测试,可以提高测试效率 ...

  4. (转)Spring Boot Junit单元测试

    场景:在项目开发中要测试springboot工程中一个几个dao和service的功能是否正常,初期是在web工程中进行要素的录入,工作量太大.使用该单元测试大大减小了工作强度. Junit这种老技术 ...

  5. spring boot junit controller

    MockMvc 来自Spring Test,它允许您通过一组方便的builder类向 DispatcherServlet 发送HTTP请求,并对结果作出断言.请注意,@AutoConfigureMoc ...

  6. spring boot -junit单元测试方法示例

    package com.example.zs; import com.example.zs.mapper.UserMapper; import com.example.zs.pojo.User; im ...

  7. Spring Boot Junit单元测试

    http://blog.csdn.net/catoop/article/details/50752964

  8. 83. Spring Boot 1.4单元测试【从零开始学Spring Boot】

    在[27. Spring Boot Junit单元测试]中讲过1.3版本的单元测试方式,这里说说1.4和1.3有什么区别之处? 在1.3中单元测试这样子的类似代码: //// SpringJUnit支 ...

  9. Spring Boot(十二)单元测试JUnit

    一.介绍 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试. 白盒测 ...

随机推荐

  1. js滚动到顶部底部代码

    <!DOCTYPE HTML> <html> <head> <meta charset=UTF-8> <title>SCROLL</t ...

  2. Golang 标准库提供的Log(一)

      原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://gotaly.blog.51cto.com/8861157/1405754 G ...

  3. thinkphp ajax调用demo

    http://files.cnblogs.com/files/jxkshu/tp_ckgd.rar

  4. fatal error C1047: 对象或库文件“.\x64\Release\Des.obj”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库

    问题描述: 在把一个32位的dll编译成64位的时候提示上面的错误 解决办法: >属性->常规->项目默认值->全程序优化  将这里的默认项 "使用链接时间代码生成& ...

  5. RabbitMQ使用(一)

    1. 安装与使用 1. 激活 RabbitMQ's Management Plugin (前面跟绝对路径) "D:\娱乐\rabbitmq_server-3.6.5\sbin\rabbitm ...

  6. HDU 6628 permutation 1 (暴力)

    2019 杭电多校 5 1005 题目链接:HDU 6628 比赛链接:2019 Multi-University Training Contest 5 Problem Description A s ...

  7. HDU 6574 Rng

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6574 思路:用古典概型的方法计算俩个区间不想交的概率,再用 1 减去即可. 由于 枚举俩种括号的所有可 ...

  8. 移动APP和传统软件测试的区别[转载]

    目录 1. 移动App比PC 上的程序测试要复杂 2. 移动APP测试中如何设计Test Case 3. 让自己成为真实的用户 4. 关注用户体验测试 5. 少做UI自动化,多做后台接口的自动化 6. ...

  9. AutoFac mvc和WebAPI 注册Service (接口和实现)

    AutoFac  mvc和WebAPI  注册Service (接口和实现) 1.准备组件版本:Autofac 3.5.0    Autofac.Integration.Mvc 3.3.0.0  (I ...

  10. robotframework+python3+selenium之创建第一个项目---第三集

    1.新建一个project 选择Directory,则是文件夹 2.选择文件,创建new suite    test_1 3.创建test case   baidu_test 4.此时界面如图: 5. ...