JUnit4

JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有:

  • @BeforeClass 全局只会执行一次,而且是第一个运行
  • @Before 在测试方法运行之前运行
  • @Test 测试方法
  • @After 在测试方法运行之后允许
  • @AfterClass 全局只会执行一次,而且是最后一个运行
  • @Ignore 忽略此方法

基本测试

新建一个项目叫JUnitTest,编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。

package rgh;public class Calculator {private static int result;public void add(int n){result = result+n;}public void substract(int n){result = result-n;}public void multiply(int n){result = result/n;}public void square(int n){result = n*n;}public void squareRoot(int n){result = (int)Math.sqrt(n);}public  void clear1(){result =0;}public void reciprocal(int n){result =1/n;}public void absolute(int n){result= Math.abs(n);}public int getResult(){return result;}
/*这一步是以后生成,初始没有public void clear() {// TODO Auto-generated method stub}public void add1(int n) {// TODO Auto-generated method stub}public void divide(int i) {// TODO Auto-generated method stub} */}
  1. 将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”
  2. 在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮
  3. 然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了
  4. 生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New JUnit Test Case”。

之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。
完整的CalculatorTest代码如下:

public class CalculatorTest {private static Calculator calculator = new Calculator();@Beforepublic void setUp() throws Exception {
calculator.clear(); }
@Test
public void testAdd() {
calculator.add(3); calculator.add(4);assertEquals(7, calculator.getResult());}@Testpublic void testSubstract() {calculator.add(8); calculator.substract(3);
assertEquals(5, calculator.getResult());}
@Ignore
("Multiply() Not yet implemented")@Test
public void testMultiply() {fail("Not yet implemented");
}
@Test
public void testDivide() {calculator.add(8); calculator.divide(2);assertEquals(4, calculator.getResult());}}

运行结果如下:

进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,二个测试失败”。
限时测试
对于那些逻辑很复杂,循环嵌套比较深的程序,很有可能出现死循环,因此一定要采取一些预防措施。限时测试是一个很好的解决方案。我们给这些测试函数设定一个执行时间,超过了这个时间,他们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。要实现这一功能,只需要给@Test标注加一个参数即可,代码如下:

@Test(timeout = 1000)public void squareRoot() {calculator.squareRoot(4);assertEquals(2, calculator.getResult());
}

测试异常

JAVA中的异常处理也是一个重点,因此你经常会编写一些需要抛出异常的函数。那么,如果你觉得一个函数应该抛出异常,但是它没抛出,这算不算Bug呢?这当然是Bug,并JUnit也考虑到了这一点,来帮助我们找到这种Bug。例如,我们写的计算器类有除法功能,如果除数是一个0,那么必然要抛出“除0异常”。

更多前去下载完整文档。。。。。。。

简易计算器做单元测试相关推荐

  1. 做一个简易计算器(VB版)

    今天小编来带大家用VB做一个简易计算器 废话不多说,下面就是具体步骤了 1.创建控件组的方法首先创建一个命令按钮,调整其大小(觉得合适就行),名称为Command1,Caption 属性为数字 0 : ...

  2. js 月份间隔计算器_15分钟用JS做一个简易计算器

    原标题:15分钟用JS做一个简易计算器 前言 这个小练手旨在帮助刚上手学习Java的同学练习最基本的Js知识,大神勿喷哈,由于这个是非常简易的计算器,可以完成的功能有加减乘除和AC(清屏),DEL(退 ...

  3. 使用“三剑客”做一个简易计算器

    使用HTML.原生CSS以及原生JavaScript做一个简易计算器 <!DOCTYPE html> <html lang="en"><head> ...

  4. 基于Python中tkinter做的可视化简易计算器(代码有注释,利于理解)

    Python可视化简易计算器 基于GUI库:tkinter做的一个简单计算器 开发软件 Pycharm2019.3 代码如下:(有对代码的简单分析,易于理解) import re import tki ...

  5. pythontkinter做计算器_Python Tkinter实现简易计算器功能

    闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的, ...

  6. 项目:使用python做一个简易计算器,图形可视化,既有界面

    代码: import tkinter as tkclass Calc(tk.Frame): # 创建Calc类继承Framedef __init__(self, parent=None):" ...

  7. android studio线性布局做计算器,Android studio设计简易计算器

    本文实例为大家分享了Android studio设计简易计算器的具体代码,供大家参考,具体内容如下 效果显示: 第一步,简单的界面布局 xmlns:tools="http://schemas ...

  8. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  9. Python之实现一个简易计算器

    自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...

最新文章

  1. java se 与j2se_关于java:J2EE和J2SE项目之间的区别
  2. java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落
  3. JavaScript联网开发架构
  4. 计算机名字需要加_PC吗,ecs计算机名字
  5. 二叉搜索树第k小元素
  6. Python出现‘ascii‘ codec can‘t encode characters...的解决方法
  7. 数据--第33课 - 树课后练习
  8. [转移]今天做了的一些事
  9. 搭建elasticsearch可视化插件
  10. 吃豆豆--Java小游戏
  11. Jedis Connection Pool
  12. Elasticsearch实现类百度搜索引擎搜索功能ES5.5.0v
  13. MobaXterm在4K屏幕下的兼容性设置
  14. 【保姆式教程】用PowerDesigner导出数据库表结构为Word/Excel表格
  15. 为什么会有工频干扰_工频干扰产生原因及解决方案【转载】
  16. 一些经典的谷歌面试题
  17. HQChart麦语法内置函数帮助文档
  18. iOS:App跳转到App Store评分
  19. SAP_FICO_BP业务伙伴配置概要
  20. Ext2Fsd:在 Windows 中挂载 Linux 分区

热门文章

  1. Elasticsearch 系列文章(一):Elasticsearch 默认分词器和中分分词器之间的比较及使用方法
  2. 八月活动强攻指南!七夕玩转H5活动
  3. 部署nova控制节点与计算节点
  4. 受惠于内存涨价 三星利润或再创新高
  5. URLConnection(二)
  6. 【Java成王之路】EE初阶第十四篇:(网络原理) 4
  7. python超市抹零结账程序_超市结账抹零采用四舍五入法则, 一天获利5000元
  8. 计算机网络(第七版 谢希仁)第1章 概述(一)
  9. 抓包工具大眼睛IRIS的使用
  10. b站 前端构架_技术干货:哔哩哔哩(B站)功能框架图 ——以B站为例分析面对秋招必须要掌握的前后端...