书接上文:Android单元测试系列(1)-开篇_Chris_166的博客-CSDN博客

本篇来介绍下Junit的简单使用,当前已经更新到Junit5了,我这里还是以Junit4来说明吧。

一、Junit官网

  • 官网地址

https://junit.org/junit4/

  • 官方入门文档

https://github.com/junit-team/junit4/wiki/Assertions

  • 官方github

https://github.com/junit-team

二、Demo示例

1. 目录结构

2. 被测试的类

// gradle引入Junit

dependencies {testImplementation 'junit:junit:4.+'
}

// 被测试的类

package com.fanff.unittestdemo;public class Calculator {public int addExact(int x, int y) {return x + y;}public int subtractExact(int x, int y) {return x - y;}public int multiplyExact(int x, int y) {return x * y;}// TODO: zero casepublic int intDivide(int x, int y) {return x / y;}
}

// 测试类: CalculatorTest.java

package com.fanff.unittestdemo;import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;/*** 常用的注解说明:* @Test:表示一条测试用例;* @Before注解的方法在每个测试方法调用之前都会先被调用;* @After注解的方法每个测试方法运行结束之后都会别调用;* @BeforeClass/@AfterClass:* (1) 在跑一个测试类的所有测试方法之前,会执行一次被@BeforeClass注解的方法,执行完所有测试方法之后,会执行一遍被@AfterClass注解的方法。* (2) 被这两个annotation修饰的方法必须是静态的。*/
public class CalculatorTest {private static Calculator sCalculator = null;/*** 如果@BeforeClass/@AfterClass注解的setUpGlobalSource()和tearDownGlobalSource()不带static,就会报错:* org.junit.runners.model.InvalidTestClassError: Invalid test class 'com.fanff.unittestdemo.CalculatorTest':*   1. Method setUpGlobalSource() should be static*   2. Method tearDownGlobalSource() should be static*/@BeforeClasspublic static void setUpGlobalSource() {System.out.println("setUpGlobalSource enter \n");sCalculator = new Calculator();}@AfterClasspublic static void tearDownGlobalSource() {System.out.println("tearDownGlobalSource enter");sCalculator = null;}@Beforepublic void setUp() throws Exception {System.out.println("setUp enter");}@Afterpublic void tearDown() throws Exception {System.out.println("tearDown enter \n");}@Testpublic void testAddExactTest() {System.out.println("testAddExactTest enter");Assert.assertEquals(8, sCalculator.addExact(2, 6));}@Testpublic void testSubtractExactTest() {System.out.println("testSubtractExactTest enter");Assert.assertEquals(8, sCalculator.subtractExact(5, -3));}@Testpublic void testMultiplyExact() {System.out.println("testMultiplyExact enter");Assert.assertEquals(8, sCalculator.multiplyExact(1, 8));}@Testpublic void testIntDivide() {System.out.println("testIntDivide enter");Assert.assertEquals(8, sCalculator.intDivide(8, 1));}
}

执行结果:

setUpGlobalSource enter setUp enter
testIntDivide enter
tearDown enter setUp enter
testAddExactTest enter
tearDown enter setUp enter
testSubtractExactTest enter
tearDown enter setUp enter
testMultiplyExact enter
tearDown enter tearDownGlobalSource enter

在Junit的使用中,注意不同注解和断言的作用,这里就不赘述了。

当demo跑起来之后就可以在网上搜下其他的注解和断言(Assert (JUnit API))的用法。

---------------------------------------

引用:单元测试 - JUnit4 详解 | Java 全栈知识体系

----------------------------------------

Android单元测试系列(2)-Junit相关推荐

  1. Android单元测试系列(3)-Mock之Mockito

    目录 一.官网 二.Demo示例 1. 目录结构 2. 被测试的类 3. 测试类 三.Mockito方法说明 1. mock对象创建 2. Mockito框架中的常见方法说明 2.1 常见的打桩方法 ...

  2. Android单元测试系列(3)-Mock之PowerMock

    目录 一.官网 二.Demo示例 三.PowerMock常用的测试方法 1. Private 1.1 私有变量 1.2 私有方法 2. Final 3. Static Android单元测试系列(3) ...

  3. Android单元测试系列(5)-Robolectric

    在Android单元测试系列(1)-开篇_Chris_166的博客-CSDN博客中就提过"Robolectric用于模拟Android接口,这套框架可以直接让测试case运行于JVM,不需要 ...

  4. Android单元测试(一):JUnit框架的使用

    JUnit框架的使用 前言 工程介绍 JUnit介绍 什么是JUnit JUnit引入 JUnit注解 JUnit断言 JUnit使用 基础用法 参数化测试 assertThat用法 用法 自定义匹配 ...

  5. Android单元测试系列(1)-开篇

    目录 一.测试金字塔 二.单元测试工具链 三.单元测试基本规范 1. 测试用例存放目录 2. 单元测试代码规范 3. 单元测试验证标准 ​ 本篇进行Android单元测试简介. 一.测试金字塔 Goo ...

  6. Android单元测试研究与实践

    处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障,这正是单元测试的用武之地.单元测试周期性对项目进行函数级别的测试,在良好的覆盖率下,能够持续维护代码逻辑,从而支持项目从容 ...

  7. 最全的Android单元测试教程

    原文链接:ChrisZou/android-unit-testing-tutorial Android单元测试: 首先,从是什么开始 Android单元测试(二):再来谈谈为什么 Android单元测 ...

  8. 关于Android单元测试

    [转载自美团点评技术团队的一篇文章,原文在这里:http://http://tech.meituan.com/Android_unit_test.htmld_unit_test.html.若涉嫌侵犯权 ...

  9. android下测试方法及junit单元测试框架配置方法

     1.测试方法: 根据测试是否知道源代码分为: 1.  黑盒测试:只关心程序执行的过程 和 结果 2.  白盒测试:根据源代码写测试方法 或者 测试用例 根据测试粒度: 1.方法测试:function ...

最新文章

  1. 游击式(移动)开发的两种方式
  2. Android SurfaceView的生命周期
  3. 【完结】总结12大CNN主流模型架构设计思想
  4. AppDelegate
  5. 金蝶国际公布2020年全年业绩,云业务收入增长45.6%
  6. JS调用CS里的方法:PageMethods
  7. 首批华为鸿蒙系统课程开发者
  8. Linux 下rpm包搭建LAMP环境
  9. 23届计算机专业毕设Java选题参考
  10. 数据流图、数据字典的画法
  11. 关于ognl.OgnlException: target is null for setProperty(null的解决方案
  12. CVPR 2021 | 目标引导的人类注意力估计提升零样本学习
  13. SigFox Vs. LoRa:技术和商业模式之间的比较
  14. 片片青艾草,悠悠赤子心
  15. 最完整的Windows系统安装教程(Win7、Win10、Win11)
  16. 【哈夫曼树】牛客 哈夫曼树
  17. 为什么你感觉Java难以入门?
  18. php注册验证用户名已存在,php ajax注册验证用户名是否存在代码_PHP教程
  19. 所谓情商高,就是会说话1
  20. 友基s400手写板怎么安装_手写板安装,教您电脑手写板怎么安装

热门文章

  1. 支付宝,微信支付何时进军美国?
  2. 垃圾收集器与内存分配策略
  3. 感觉到压力和任务艰巨
  4. APC发布首款高性能植物跑鞋
  5. 定期备份微信聊天记录(职场必备)
  6. React focus鼠标指针变成手指
  7. [Luogu] P3413 萌数
  8. 解决 MacOS BigSur JD-GUI 打开失败的问题
  9. 【macOS游戏】战锤40000:机械师
  10. pixiJS制作水波效果