1.1 Junit是什么

Junit是Java语言编写的第三方单元测试框架

1.2 单元测试概念

  • 单元:在Java中,一个类就是一个单元

  • 单元测试:程序猿编写的一小段代码,用来对某个类中的某个方法进行功能测试或业务逻辑测试。

1.3 Junit单元测试框架的作用

用来对类中的方法功能进行有目的的测试,以保证程序的正确性和稳定性。
能够让方法独立运行起来。

1.4 Junit单元测试框架的使用步骤

编写业务类,在业务类中编写业务方法。比如增删改查的方法
编写测试类,在测试类中编写测试方法,在测试方法中编写测试代码来测试。
测试类的命名规范:以Test开头,以业务类类名结尾,使用驼峰命名法
每一个单词首字母大写,称为大驼峰命名法,比如类名,接口名...
从第二单词开始首字母大写,称为小驼峰命名法,比如方法命名

比如业务类类名:ProductDao,那么测试类类名就应该叫:TestProductDao
测试方法的命名规则:以test开头,以业务方法名结尾
比如业务方法名为:save,那么测试方法名就应该叫:testSave

1.5 测试方法注意事项

  • 必须是public修饰的,没有返回值,没有参数

  • 必须使注解@Test修饰

1.6 如何运行测试方法

  • 选中方法名 --> 右键 --> Run '测试方法名' 运行选中的测试方法

  • 选中测试类类名 --> 右键 --> Run '测试类类名' 运行测试类中所有测试方法

  • 选中模块名 --> 右键 --> Run 'All Tests' 运行模块中的所有测试类的所有测试方法

1.7 如何查看测试结果

  • 绿色:表示测试通过

  • 红色:表示测试失败,有问题

1.8 Junit常用注解(Junit4.xxxx版本)常用于初始化对象赋值

  • @Before:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。

  • @After:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。

  • @BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前执行一次。

  • @AfterClass:用来静态修饰方法,该方法会在所有测试方法之后执行一次。

1.9 Junit常用注解(Junit5.xxxx版本)

  • @BeforeEach:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
  • @AfterEach:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。
  • @BeforeAll:用来静态修饰方法,该方法会在所有测试方法之前执行一次。
  • @AfterAll:用来静态修饰方法,该方法会在所有测试方法之后执行一次。

1.10 Junit的使用

  • 示例代码

/**业务类:实现加减乘除运算*/
public class Cacluate {/*业务方法1:求a和b之和*/public int sum(int a,int b){return  a + b + 10;}/*业务方法2:求a和b之差*/public int sub(int a,int b){return  a - b;}
}public class TestCacluate {static Cacluate c = null;@BeforeClass // 用来静态修饰方法,该方法会在所有测试方法之前执行一次。public static void init(){System.out.println("初始化操作");// 创建Cacluate对象c = new Cacluate();}@AfterClass // 用来静态修饰方法,该方法会在所有测试方法之后执行一次。public static void close(){System.out.println("释放资源");c = null;}/* @Before // 用来修饰方法,该方法会在每一个测试方法执行之前执行一次。public void init(){System.out.println("初始化操作");// 创建Cacluate对象c = new Cacluate();}@After // 用来修饰方法,该方法会在每一个测试方法执行之后执行一次。public void close(){System.out.println("释放资源");c = null;}*/@Testpublic void testSum(){int result = c.sum(1,1);/*断言:预习判断某个条件一定成立,如果条件不成立,则直接奔溃。assertEquals方法的参数(String message, double expected, double actual)message: 消息字符串expected: 期望值actual: 实际值*/// 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。Assert.assertEquals("期望值和实际值不一致",12,result);System.out.println(result);}@Testpublic void testSub(){// 创建Cacluate对象// Cacluate c = new Cacluate();int result = c.sub(1,1);// 如果期望值和实际值一致,则什么也不发生,否则会直接奔溃。Assert.assertEquals("期望值和实际值不一致",0,result);System.out.println(result);}
}

Java(十四)----Junit测试相关推荐

  1. 教妹学Java(十四):switch 语句详解

    大家好,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.本篇文章通过我和三妹对话的形式来谈一谈"switch 语句". 教妹学 Java,没见过这么有趣的标题吧?&q ...

  2. 【Visual C++】游戏开发笔记四十六 浅墨DirectX教程十四 模板测试与镜面特效专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处.   文章链接: http://blog.csdn.net/zhmxy555/article/details/8632184 作者:毛星云( ...

  3. java十四章带参方法课后_java14带参的方法

    public class jh_01_如何使用带参数的方法31 { public static void main(String[] args) { // 创建对象 ZhaZhiJi zzj = ne ...

  4. java十四章简答_java各章节简答题

    Java简答题第1章 1.Java语言的特点? 答:简单性.面向对象.分布式处理.健壮性.结构中立.安全性.可移植性.解释性.高性能.多线程.动态 2.Java程序的开发步骤 1)编写源文件.扩展名必 ...

  5. Python(十四)测试、调试和异常

    1.测试stdout输出 写个测试来证明标准输出,会将文本打印到屏幕上面 使用unitest框架进行测试 # mymodule.pydef urlprint(protocol, host, domai ...

  6. java面试四 运算符测试

    1 根据根除的代码,选出正确的答案 public class Test { public static void main(String[] args) {    int i = 0 ;    int ...

  7. 假赋值java_Java十四天零基础入门-Java赋值运算符

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 Java赋值运算符 赋值运算符目前也是只需要掌握=.+=.-=.*=./=.%=,其它和二进制相关的内容也是到后面遇到的时候再详细学习.赋值 ...

  8. Java从键盘输入n行字符串_Java十四天零基础入门-Java布尔类型

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 Java布尔类型 在Java语言中布尔类型的值只包括true和false,没有其他值,不包括1和0,布尔类型的数据在开发中主要使用在逻辑判断 ...

  9. java短除法获取二进制_Java十四天零基础入门-Java的数据类型介绍

    不闲聊!!!不扯淡!!!小UP只分享Java相关的资源干货 本章节目标: 理解数据类型的作用.Java中包括哪些数据类型?常见的八种基本数据类型都有哪些?会用八种基本数据类型声明变量?什么是二进制?原 ...

最新文章

  1. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
  2. 对面向对象设计原则的总结
  3. 十、Docker快速搭建Elastic Stack(下篇)
  4. Bigtable:一个分布式的结构化数据存储系统(转)
  5. java 任意数平均值_【编程题】通过键盘输入三个任意的数字,计算三个值的平均值,并输出结果。...
  6. 在Android Studio中将Android工程变为Library使用
  7. jsp 页面实现增减行
  8. 没有它,我们寸步难行——LBS的渊源与实践
  9. Linux下通过WebShell反弹Shell的技巧
  10. 水晶报表中图片不显示解决方案
  11. 转:Maven通俗讲解
  12. AVOD-代码理解系列(三)
  13. Java开源博客源码完整汇总(持续更新)
  14. 计算机指纹驱动程序,联想笔记本指纹识别驱动安装教程【详解】
  15. “新产业50人论坛”之清华龙桂鲁教授:量子信息与创新发展
  16. 智能柜怎么与Android通信,快递智能柜Android系统该何去何从
  17. linux程序设计x11,让Linux支持X11 Forwarding
  18. weiphp mysql5.1_weiphp微信公众平台 v4.0 beta
  19. jsp/servlet过滤器和struts2拦截器的有什么区别
  20. Differentially Private Deep Learning with Iterative Gradient Descent Optimization

热门文章

  1. Deepin V20 beta的MAC图标和光标美化(附壁纸)
  2. 网络协议分析-生成树协议(STP)分析
  3. 红帽子设置SSH基于密钥的用户登陆
  4. xp桌面显示计算机,xp系统电脑开机后不显示桌面
  5. snm算法_基于SNM算法的大数据量中文商品清洗方法
  6. 存储:日立(heitachi)-AMS2100 连接
  7. FineUI秘密花园(二) — 一切从头开始
  8. 使用aws搭建一个区块链(私有链)-- 搭建篇B
  9. java哨片红盒 绿盒的区别_萨克斯吹不好?你选对哨片了吗?
  10. php模板目录结构图,WordPress模板目录结构详细解读