基于JUnit3.8的一个简单的测试程序
2024-10-15 09:26:01
实现一个简单的计算
注:目标类和测试类要放在同一包下, JUnit单元测试基础要点
目标类:Calculator.java
- package com.junit3_8;
- public class Calculator {
- //加
- public int add(int a, int b)
- {
- return a + b ;
- }
- //减
- public int subtract(int a, int b)
- {
- return a - b ;
- }
- //乘
- public int multiply(int a, int b)
- {
- return a * b ;
- }
- //除
- public int divide(int a, int b)throws Exception
- {
- if (0 == b)
- {
- throw new Exception("除数不能为0");
- }
- return a / b ;
- }
- }
测试类: CalculatorTest.java
- package com.junit3_8;
- import junit.framework.Assert;
- import junit.framework.TestCase;
- //测试类要继承TestCase
- public class CalculatorTest extends TestCase{
- Calculator cal;
- //在“每个”测试方法执行之前被调用
- public void setUp()
- {
- //这段代码在这写比较方便,只写一次就够,
- //不用在每个方法里写,因为这个方法每次都被调用,生成不同的对象,供测试方法使用
- cal = new Calculator();
- //System.out.println("setUp");
- }
- //在“每个”测试方法执行之后被调用
- public void tearDown()
- {
- //System.out.println("testDown");
- }
- //测试方法:方法名要以test为开头,无参数,无返回类型
- public void testAdd()
- {
- //Calculator cal = new Calculator();
- int result = cal.add(1, 2);
- //第一个参数是预期的,第二个参数是真实的
- Assert.assertEquals(3, result);
- }
- public void testSubtract()
- {
- //Calculator cal = new Calculator();
- int result = cal.subtract(1, 2);
- //第一个参数是预期的,第二个参数是真实的
- Assert.assertEquals(-1, result);
- }
- public void testMultiply()
- {
- //Calculator cal = new Calculator();
- int result = cal.multiply(1, 2);
- //第一个参数是预期的,第二个参数是真实的
- Assert.assertEquals(2, result);
- }
- public void testDivide()
- {
- int result = 0;
- //Calculator cal = new Calculator();
- try
- {
- result = cal.divide(4, 2);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- //让测试失败
- Assert.fail();
- }
- //第一个参数是预期的,第二个参数是真实的
- Assert.assertEquals(2, result);
- }
- //除数为0的情况
- public void testDivideByZero()
- {
- Throwable th = null ;
- //Calculator cal = new Calculator();
- try
- {
- cal.divide(1, 0);
- Assert.fail();
- }
- catch(Exception e)
- {
- th = e ;
- //e.printStackTrace();
- }
- //th 不为空 null
- Assert.assertNotNull(th);
- //第一个参数是预期的,第二个参数是真实的
- Assert.assertEquals(Exception.class, th.getClass());
- Assert.assertEquals("除数不能为0", th.getMessage());
- }
- //加了这个main方法,可以直接以 Java Application 方式运行 ,也可以以 JUnit Test 运行
- public static void main(String[] args)
- {
- //命令行形式打印
- junit.textui.TestRunner.run(CalculatorTest.class);
- //awt 界面方式显示
- //junit.awtui.TestRunner.run(CalculatorTest.class);
- //swing 界面方式显示
- //junit.swingui.TestRunner.run(CalculatorTest.class);
- }
- }
1.调用 Assert.fail() 是让测试失败,该方法一般放在你认为不会到达的地方
2.这段代码让整个程序简便了许多 Calculator cal; //在“每个”测试方法执行之前被调用 public void setUp() { //这段代码在这写比较方便,只写一次就够, //不用在每个方法里写,因为这个方法每次都被调用,生成不同的对象,供测试方法使用 cal = new Calculator(); }
最新文章
- 在传统.NET Framework 上运行ASP.NET Core项目
- 极路由2(极贰)ROOT并刷了OpenWrt
- Office 365 Licence使用情况统计
- Swift----方法 、 下标 、 继承 、 初始化 、 析构方法 、 可选链
- 树莓派摄像头模块转成H264编码通过RTMP实现Html输出
- C2第九次解题报告
- ORA-28000: the account is locked-的解决办法
- ubuntu安装pip3
- 正常月报表年初未分配利润修改backup
- CSS 动画之九-会呼吸的信封
- Java克隆--深克隆与浅克隆的区别
- InitCommonControlsEx()
- DigitalOcean VPS简介
- LPC1788的IIC使用
- noip普及组2007 奖学金
- 【bzoj2151】种树
- Ollydbg中的内存断点和硬件断点的区别
- C++:钻石继承与虚继承
- Git -- 工作区 和 暂存区
- Lodash 中文文档 (v4.16.1) 手机版