包含junit单元测试的词条

http://www.itjxue.com  2023-01-24 02:27  来源:未知  点击次数: 

如何应用Junit单元测试

工具/材料

Eclipse

01

首先我们来新建一个Java项目,如下图所示,选择New下面的Java Project

02

然后在项目下面建一个Package包,如下图所示,Package包主要是为了程序结构明晰

03

在弹出的如下图所示的Package包弹出窗口,我们给包起一个名字,如下图所示

04

然后我们在项目下面新建一个Java的类,如下图所示,类是建在package下面的

05

然后在新建的类中,我们输入如下的方法,主要是加减乘除的功能

06

然后我们右键单击项目,选择Build Path下面的Add Libraries选项,如下图所示

07

在弹出的Add Library界面我们选择Junit,然后一路下一步即可,如下图所示

08

接下来就是新建一个测试类,如下图所示,给测试类起好名字

09

然后书写测试类的代码,如下图所示,利用junit中的assetEquals方法进行加法测试,如下图所示

10

最后我们运行程序,你会看到如下的提示,证明测试通过了

JUnit代码测试是什么?怎么写代码?

分类: 电脑/网络 程序设计 其他编程语言

解析:

JUnit是Java进行单元测试的一个框架, 需要下载junit, 3.8版本和后来的4.0以后版本编写测试的方法略有不同,

在3.8.2中需要导入junit.framework.中的类, 进行测试的类必须继承自TestCase类, 测试方法名称中需要含test字样, 可以在setup和teardown函数中管理一些每个测试函数都需要的资源比如数据库连接等,在测试函数中使用assert开头的函数来进行测试代码开发.以下是从junit文档中摘出的范例:

import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;

/**

* Some simple tests.

*

*/

public class SimpleTest extends TestCase {

protected int fValue1;

protected int fValue2;

protected void setUp() {

fValue1= 2;

fValue2= 3;

}

public static Test suite() {

/*

* the type safe way

*

TestSuite suite= new TestSuite();

suite.addTest(

new SimpleTest("add") {

protected void runTest() { testAdd(); }

}

);

suite.addTest(

new SimpleTest("testDivideByZero") {

protected void runTest() { testDivideByZero(); }

}

);

return suite;

*/

/*

* the dynamic way

*/

return new TestSuite(SimpleTest.class);

}

public void testAdd() {

double result= fValue1 + fValue2;

// forced failure result == 5

assertTrue(result == 6);

}

public void testDivideByZero() {

int zero= 0;

int result= 8/zero;

result++; // avoid warning for not using result

}

public void testEquals() {

assertEquals(12, 12);

assertEquals(12L, 12L);

assertEquals(new Long(12), new Long(12));

assertEquals("Size", 12, 13);

assertEquals("Capacity", 12.0, 11.99, 0.0);

}

public static void main (String[] args) {

junit.textui.TestRunner.run(suite());

}

}

在4.0.2中的变化是:

测试需要@.junit.Test的Annotation标记,其他部分也使用了Annotation标记,setup和teardown使用@.junit.Before 和@.junit.After, 在eclipse3.1的环境中不支持4.0.2, 可以使用junit 4.0.2中提供的adapter类来帮助eclipse内置的junit发现新版本的测试函数

Junit4入门之如何编写好的测试类

在使用junit前, 我们需要 了解 一些规则,如何去写好一个测试类。

之所以放在junit前说明,是因为单元测试不一定只能用junit去做,就算我们什么软件依赖都不用,也是可以做的,就是会麻烦点,不要下意识的觉得 单元测试=Junit ,应该是 单元测试 Junit 。

市面上单元测试并不是只有junit一家的,还有许多其他的框架模块,只是相比之下它们没有junit普及。而且有些公司还有内部的单元测试框架,也未必是基于junit开发的。

甚至必要的时候,哪怕不用Juint,也要进行单元测试,这就只能用Java原生的断言语句等等了。

1)java中断言(assert)的使用

一开始我以为断言是junit中的特色,其实不然,断言是一个编程术语,常用于单元测试中,甚至它都并不只存在于java。

而 java中的断言 ,是在JDK1.4后开始使用的,关键字是assert,它主要是用在代码 开发和测试时期 ,用于对某些数据进行预期判断,如果结果不符合自己的预期,程序就警告或退出。

它的语法大概如下:

语法①:assert condition

condition代表一个布尔类型的条件表达式,如果为真,就继续正常运行,如果为假,则异常退出

这里我断言x=0,如果计算结果符合我的预期则无事发生,如果计算结果x小于0,则不符合我的预期,断言失败,抛出AssertionError。

语法②:assert condition : message

condition和上面是一样的,冒号后的message通常用于断言失败后的异常提示信息,它就是个传入到AssertionError构造参数里的值,用于我们自定义错误详情的,这里就不放代码了,大家可以自己试试。

关于使用断言还有个最重要的规则: 程序的任何行为都不能依赖断言,千万不要把断言当成程序中的逻辑来使用 ,也就是你的代码即便删除里面所有的断言语句,它的逻辑和之前也是不能有任何变化的。因为它只是用于测试和开发的,甚至JVM默认都是关闭断言使用的,如果没有开启断言,程序会自动忽略所有断言语句,仿佛它们并不存在,要执行assert语句,必须给Java虚拟机传递-enableassertions(可简写为**-ea**)参数 启用断言 ,也可以使用-disenableassertion(简写为**-da) 参数 关闭断言**(默认就是关闭的)。

最后,虽然java有提供断言,但我们实际开发中却很少使用它,因为如果要使用它去测试,还不如直接用Junit框架去写单元测试的代码,Junit也提供了断言的语句。

虽然我们用不上java里的断言,但是也要有所了解,并且大部分的断言其实逻辑都是差不多的。

(责任编辑:IT教学网)

更多