java 单元测试用例_Java单元测试和JUnit

**********************单元测试和JUnit********************************

为什么要使用单元测试

1.底层代码没问题,上一层才不会出现问题.. 就像盖楼一样

2.提高士气,明确知道我的东西是没问题的, 保证你不被开

3.加大测试的力度可以降低后期维护的成本

一.什么是JUnit

JUnit是一个单元测试框架,另一个叫做TestNG

框架: 一组类(普通类、抽象类、接口)的集合,别人帮你写好了,你直接拿来用就可以了,

提供一系列功能... 提供了测试相关的功能

半成品: 一半已经完成了、一半没有完成

类似于填空题、选择题

使用框架的好处: 限制了程序员的随意发挥,提高了程序的可读性和可维护性,便于团队的开发

JUnit已经逐渐成为xUnit家族中最为成功的一个.

xUnit中还有: cppUnit、pythonUnit、xUnit.net

二.why 为什么用JUnit

使用main方法测试好不好??

不好.缺点如下

1.多个测试用例类无法同时测,每测一个业务逻辑类 都用单独去执行它的测试用例,比较麻烦

2.使用main方法测试需要人为的观察 测试结果 比如看到30 就是正确 比较麻烦

使用了jUnit以后 只需要看bar就可以了 绿条 表示测试通过 红条 表示测试失败

三.how 如何使用jUnit

去官网下载 http://junit.org/

最新版本jUnit5 ,我们使用的是稳定版本 jUnit-4.10

下载下来以后是一个zip包,解压缩 使用里面的 junit-4.10.jar 文件即可

1. 导jar包

把junit-4.10.jar 导到 myeclipse中的 build-path中

工程右键-build path -configure build path--libraies--add external jar

选中d:\ jUnit-4.10.jar 即可

jar包; 实质就是压缩包, zip、rar、jar

什么是build-path?build-path的作用?

build- path 构建路径

build-path相当于以前所学的class-path的概念,build-path是myeclipse自己

的一套classpath.

程序员知道jar包在d:\盘 ,但是myeclipse不知道,如何让myeclipse找到jar包

把jar添加到build-path中就可以了,myeclipse就能找到jar包了

如果程序员没有使用任何IDE编程, 例如使用editplus 这样想使用jar包需要把

jar包的路径添加到classpath中即可

Classpath: 运行的类去哪找 是去Classpath找,编译的时候 当前类 依赖的类(TestCase) 去哪找 也是去Classpath下找

如果没有把 jUnit-4.10.jar加到 classpath是找不到这个类的...

2. 进行测试

(1) 业务逻辑类 Calculator

(2) 编写测试用例类

TestXXX

TestCalculator

*************************************使用jUnit如何编写测试用例类*******************************

1. jUnit3

演示代码:

package com.chapter17;

import junit.framework.TestCase;

//测试用例类

//jUnit3的测试用例类

public class TestCalculator extends TestCase {

// 测试方法的命名规范

// public void textXXX 没有任何的参数

public void testAdd() {

Calculator cal = new Calculator();

int sum = cal.add(10, 20);

//使用断言来代替 System.out.println

//断言: 就是判断的意思

assertEquals("亲,失败了",30,sum);

}

}

如何运行:

展开Outline概要视图 在你想要运行的测试方法上面 右键 run as -junit test

2. jUnit4

测试用例类不需要继承任何类,直接在测试方法上面加一个@Test注解就可以了

演示代码:

import org.junit.Test;

import static org.junit.Assert.*;

//jUnit4的测试用例类

public class TestCalculator4 {

@Test

public void testAdd(){

Calculator cal = new Calculator();

int sum = cal.add(10, 20);

assertEquals("亲,失败了",30,sum);

}

}

**********************************测试结果分析****************************************

1. 测试通过 Pass

期望值和实际值相等,表示测试通过...绿条

一组测试用例

输入参数1 输入参数2 期望值 实际值

1020 30 30

2. 测试失败 Failure

期望值和实际值不等,红条

3. 测试错误 Error

测试代码本身出现问题... 需要先把测试代码的错误修正以后 再从新进行测试

*************************************测试常用的方法*******************************

jUnit3

setUp(): 在每个测试方法执行前执行,一般用来放建立资源的代码(例如连接数据库、建立socket连接等)

tearDown(): 在每个测试方法执行后执行,一般用来放释放资源的代码(例如关闭数据库、关闭socket连接等)

jUnit4

Unit4支持多种注解来简化测试类的编写

**测试期望出现一个异常

@Test(expected=ArithmeticException.class)

public void testDivide(){

Calculator cal = new Calculator();

int result = cal.divide(10, 2);

}

**测试效率

新建一个业务逻辑类

public class FileCopy {

public void copy(){

for(int i=1;i<=1000;i++){

System.out.println(i);

}

}

}

测试用例类

public class TestFileCopy {

@Test(timeout=50)

public void testCopy(){

FileCopy fc = new FileCopy();

fc.copy();

}

}

*************************************测试套件*******************************

如果想执行多个测试用类,之前需要在每个测试用例类 上面 单击右键 一个一个执行,比较麻烦.

有没有一种方式可以让多个测试用例类 同时执行?

有的.可以把多个测试用例类加入到测试套件中,只需要执行该测试套件即可..执行了这个测试套件,相当于

把该测试套件中所有的测试用例类都挨个执行了

*************************************参数化测试*******************************

让多组测试用例的数据同时执行

演示代码参见教案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值