书接上文: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. 他是阿里 P11,靠写代码写成合伙人,身家几十亿,没有他,我们可能刷不了淘宝!...
  2. solr系列之solr-5.5.5 window单机版默认Jetty安装
  3. 大家一起学面向对象设计模式系列Chapter 02 软件设计的基本原则
  4. MS SQL入门基础:删除数据
  5. Extjs4 tab添加右键刷新功能
  6. Vista中使用率最高的11条命令
  7. 不同映射方式下cache的失效率_详解发动机在不同工况下的喷油量控制方式
  8. 2021年度训练联盟热身训练赛第五场 H题In-place Sorting+贪心构造
  9. 使用rsync无密码传输
  10. Web程序设计-客户端表单验证
  11. 彐一夕儿本铺_2019-10-16汉字宫目录
  12. 如何抓取图片php,PHP网络爬虫之图片抓取
  13. AppCompatActivity设置透明主题
  14. 路由交换技术实战七 FR 网络中配置 OSPF( 完成版 )
  15. 基于python的scip库使用,从基础模型到复杂模型,从一维变量到三维变量
  16. 山水印|竹林野茶:中秋,为什么是粉色?
  17. 发动机、发电机、电动机、电机、马达傻傻分不清?一张图恍然大悟!
  18. 如果用某些暴力软件来强行卸载客户端结果会怎样?
  19. 基于JSP+MySQL的校园网上订餐系统
  20. 05.视频播放器内核切换封装

热门文章

  1. python打包之pyinstaller常用命令及常见问题
  2. Laravel_arse error: syntax error, unexpected '?'
  3. 用Python如何自动登录路由器!获取信息!请勿用于非法用途!
  4. windows 下证书管理
  5. 计算机网络(第7版) - 第六章 应用层 - 习题
  6. 初识JAVA(二)(送给Java和安卓初学者)----常见错误
  7. 面试害怕被问MySQL相关问题 ?这份三万字精华总结 + 面试100 问,吊打面试官完全够了
  8. 【sql: 联系题 23 24】查询同名学生名单,并统计同名人数 找到同名的名字并统计个数,查询 1990 年出生的学生名单...
  9. sql server 错误53
  10. 【macOS游戏】战锤40000:机械师