当前位置: 首页 > news >正文

SpringBoot入门十,添加junit单元测试

SpringBoot使用junit非常简单,我们来看一下,首先说明,这里使用的是springboot2.0.4的版本

一.pom.xml文件开启springboot测试包

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

二.创建一个测试类

1.单文件测试,直接添加@Test注解即可,如图:

SpringBoot入门十,添加junit单元测试

2.MVC形式调用

测试类,需要加上两个注解

 @RunWith(SpringRunner.class)
 @SpringBootTest(classes={App.class})

其中App.class是主程序入口类,即springboot的启动类

package com.qfx.test;

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;

import com.qfx.system.App;
import com.qfx.system.service.SysUserService;

@RunWith(SpringRunner.class)
@SpringBootTest(classes={App.class})
public class JunitTest {

    @Autowired
    SysUserService sysUserService;

    @Test
    public void printSysUserInfo(){
        String userStr = sysUserService.getSysUserAll();
        System.out.println(userStr);
    }
}

进行测试的时候会通过App.class来启动springboot,我们来看一下效果,如图:

SpringBoot入门十,添加junit单元测试

至于对Controller的测试可以直接启动项目,通过浏览器来发送请求测试了,如果实在想使用junit来测试的话,可以使用来MockMvc进行

转载于:https://blog.51cto.com/1197822/2316932

相关文章:

  • 英特尔AIDC大会:向AI开发者敞开怀抱,更加注重生态搭建
  • Linux服务器后门自动化查杀教程
  • 光照模型与面绘制算法---小结
  • 树六:二叉树中和为某一值的路径
  • 前端项目技术栈总结
  • 互联网支付系统概要设计
  • 远程连接软件TeamViewer
  • chapter2.1、react 项目构建
  • P2P技术做自有点播系统的加速,还需要和CDN一样部署很多服务器吗?
  • bs4.BeautifulSoup的基础用法
  • 技术和商业的碰撞,谈阿里云与天猫双11这十年
  • 高级软件工程第六次作业:两只小熊队团队作业-3
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • Egg.js 基本使用
  • docker-compose up Windows named pipe error:(code: 2)
  • 【node学习】协程
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • gulp 教程
  • JS变量作用域
  • Js基础——数据类型之Null和Undefined
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Vue小说阅读器(仿追书神器)
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 深入浅出Node.js
  • 使用Swoole加速Laravel(正式环境中)
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 关于Android全面屏虚拟导航栏的适配总结
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 函数计算新功能-----支持C#函数
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​configparser --- 配置文件解析器​
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​TypeScript都不会用,也敢说会前端?
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (六)Hibernate的二级缓存
  • (一)RocketMQ初步认识
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET和.COM和.CN域名区别
  • .NET开源项目介绍及资源推荐:数据持久层
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • :如何用SQL脚本保存存储过程返回的结果集
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @GetMapping和@RequestMapping的区别
  • @property括号内属性讲解
  • [16/N]论得趣
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [C++]——带你学习类和对象
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径
  • [Django 0-1] Core.Email 模块
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup