Java学习路线(22)——测试框架Junit
一、单元测试概念
单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法正确性。
二、Junit测试框架
(一)概念: Junit是Java语言实现的单元测试框架。
(二)优点:
- 可选择测试方法
- 一键执行全部测试方法
- Junit可以生成全部方法的测试报告
- 测试方法具有隔离性
(三)实现单元测试 - 1、导入JUnit包,若IDE已整合好Junit框架则不需要。
- 2、编写测试方法:该方法必须是公共无参无反非静态方法
- 3、添加@Test注解
- 4、测试方法完成预期正确性测试。
- 5、运行测试方法。(绿——通过,红——失败)
业务代码
public class UserService {public String login(String loginname,String password){if ("admin2".equals(loginname) && "123456".equals(password)) return "登录成功";else return "用户名或密码错误";}public void selectName(){System.out.println(10 / 0);System.out.println("查询全部用户名");}
}
测试代码
public class TestDemo{@Testpublic void testLogin(){UserService service = new UserService();String rs = service.login("admin","123456");//预期结果的测试Assert——断言测试Assert.assertEquals("功能业务出错!!","登录成功",rs);}@Testpublic void testSelectName(){UserService service = new UserService();service.selectName();}
}
效果输出1
org.junit.ComparisonFailure: 功能业务出错!!
Expected :登录成功
Actual :用户名或密码错误
<Click to see difference>at org.junit.Assert.assertEquals(Assert.java:117)at com.zengoo.junit.TestDemo.testLogin(TestDemo.java:18)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.ParentRunner.run(ParentRunner.java:413)at org.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
一键测试
效果图
(四)Junit常用注解(Junit 4.0以上)
注解 | 说明 |
---|---|
@Test | 测试方法 |
@Before | 修饰实例方法,在每一个测试方法执行之前执行 |
@After | 修饰实例方法,在每一个测试方法执行之后执行 |
@BeforeClass | 静态修饰方法,在所有测试方法执行之前只执行一次 |
@AfterClass | 静态修饰方法,在所有测试方法执行之后只执行一次 |
Java学习路线(22)——测试框架Junit相关推荐
- 十年架构师留下最完整的Java学习路线
原文地址:https://club.dingding.xin/topic/5081/十年架构师留下最完整的java学习路线?code=cb850abbce523c7f886f583d6dc00f5e ...
- 十年架构师留下最完整的Java学习路线,学完年薪40W
文章有点长,请大家耐心看完,话不多说直接上干货! 永不过时的编程语言--Java 编程开发. Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数 ...
- Java学习路线从入门到入土
Java学习路线从入门到入土 Java学习路线从入门到入土 Java学习路线从入门到入土 简介 Java基础课程 第一阶段 第一部分:Java开发介绍 第二部分:Java数组 第三部分:Java面向对 ...
- 从小白到大神Java学习路线
Java学习路线 第一阶段:JavaSE 1. 第一部分:Java开发介绍 DOS常用命令 JVM.JRE.JDK之间的关系 Java开发环境的搭建:安装JDK,配置环境变量 Java入门程序(Jav ...
- java学习路线,一个初中生学java要多久,java难学吗
一门永不过时的编程语言--Java 软件开发 java难学吗 java不难,你可以做如下学习 一.到相应的培训机构付费学习 别在这说培训机构没用什么的,不过一定要找正规的培训机构,不然容易被坑.培训机 ...
- 人类高质量 Java 学习路线【一条龙版】
大家好,我是张讨嫌.现在网上的编程资料实在太多了,而且人人肯定都说自己的最好,那就导致大家又不知道怎么选了.大部分的博主推荐资源,也就是把播放量高的视频说一遍,水一期视频,没有一条很清晰的学习路线. ...
- 怒肝 Java 学习路线一条龙!
文章为转载 请关注鱼皮好友 持续获取 有效学习知识 现在网上的编程资料实在太多了,而且人人肯定都说自己的最好,那就导致大家又不知道怎么选了.大部分的博主推荐资源,也就是把播放量高的视频说一遍,水 ...
- 【最新版】Java学习路线(含B站口碑推荐视频链接)
文章目录 关于如何自学 一.计算机网络 二.数据结构与算法 三.操作系统 四.计算机组成原理 五.编译原理 六.设计模式 七.MySQL 八.实操工具 九.JAVA并发与JVM 十.Redis 十一. ...
- 这可能是最全面的Java学习路线了
大家好,我是大彬~ 我本科学的不是计算机,大四开始自学Java,并且拿到了几个互联网中大厂的offer.在学习Java这方面还是比较有经验的,下面我来分享下我整理的Java自学路线. 在这里也提醒学弟 ...
- Java学习笔记-Day64 Spring 框架(二)
Java学习笔记-Day64 Spring 框架(二) 一.控制反转IOC和依赖注入DI 1.控制反转IOC 2.依赖注入DI 3.Spring IOC容器 3.1.简介 3.2.实现容器 3.2.获 ...
最新文章
- C++通过GSoap访问webService
- boost::hana::Comparable用法的测试程序
- java 内存同步_Java中的硬件事务性内存,或者为什么同步将再次变得很棒
- jsp当参数为空的时候默认显示值
- epel源mysql版本_centos网络yum源和epel源(2017可用首选)
- sql中的日期函数和case函数
- vue.js2.0 新手开发_vue.js2.0实战(1):搭建开发环境及构建项目
- linux系统日志设置
- Unity3D 智能巡逻兵
- 做独立淘客app有哪些运营方法
- 微信开发工具,字体如何调整的大一点?
- mysql 连续打卡天数_Sql如何统计连续打卡天数
- python新手入门(四)
- java 根据拼音查询汉字_java根据拼音搜索,但数据库为汉字的解决方案
- E. Pencils and Boxes (树状数组优化dp)
- Ubuntu14.04安装adobe flash 插件
- VisionPro 9.X 各版本下载地址
- git commit 文字填错了 如何修改
- 如何将数字转化为中文大写 java
- LoRaWAN介绍3 优点
热门文章
- codeforces 614B Geda's Code
- python 计时_python运行计时
- c语言 字符串加密和解密算法实现
- 在SpringBoot中整合使用Netty框架提供WebSocket服务
- iPhone13真香,中国富豪纷纷抢购,苹果官网因此瘫痪,安卓被高端消费者抛弃...
- arcgis制图之天地图符号样式配置
- KD01策略丨SuperTrend+空头波段
- 智能仓储之RFID仓库管理解决方案-RFID智能仓储管理-新导智能
- [附源码]计算机毕业设计大学生创新项目管理系统Springboot程序
- 实例4,循迹模块的使用和循迹小车的实现