了解认识Junit,简单实例

JUnit是一个开源的java单元测试框架。

1) 提供的API可以让你写出测试结果明确的可重用单元测试用例

2) 提供了三种方式来显示你的测试结果,而且还可以扩展

3) 提供了单元测试用例成批运行的功能

4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导

5)  整个框架设计良好,易扩展

对不同性质的被测对象,如ClassJspServletEjb等,Junit有不同的使用技巧。以下仅以Class测试为例。

创建一个工程,名称为:CalculateTest,并在这个工程上点击右键,选择:Build Path -> Add Library -> JUnit ...,如下图所示:

选择 JUnit 的库版本为:JUnit 4,如下图所示:


整个工程的结构如下:

首先,我们将介绍一个测试类:

Calculate.java

package com.yiibai.junit;

public class Calculate {

	public int sum(int var1, int var2) {
		System.out.println("相加的值是: " + var1 + " + " + var2);
		return var1 + var2;
	}

}

在上面的代码中,我们可以看到,类有一个公共的方法sum(), 它得到输入两个整数,将它们相加并返回结果。在这里,我们将测试这个方法。为了这个目的,我们将创建另一个类包括方法,将测试之前的类(在此情况下,我们只有一个方法进行测试)中每一个的方法。这是使用的最常见的方式。当然,如果一个方法非常复杂且要扩展,我们可以在一个以上的试验方法来测试这一复杂方法。创建测试用例的详细信息将显示在下面的部分。下面,有一个类是:CalculateTest.java,它具有我们的测试类的角色的代码:

CalculateTest.java

package com.yiibai.junit;

import static org.junit.Assert.*;

import org.junit.Test;

public class CalculateTest {

	Calculate calculation = new Calculate();
	int sum = calculation.sum(2, 5);
	int testSum = 7;

	@Test
	public void testSum() {
		System.out.println("@Test sum(): " + sum + " = " + testSum);
		assertEquals(sum, testSum);
	}

}

让我们来解释一下上面的代码。首先,我们可以看到,有一个@Test的注解在 testSum()方法的上方。 这个注释指示该公共无效(public void)方法它所附着可以作为一个测试用例。因此,testSum()方法将用于测试公开方法 sum() 。 我们还可以观察一个方法 assertEquals(sum, testsum)。 assertEquals ([String message], object expected, object actual) 方法持有两个对象作为输入,并断言这两个对象相等。

如果要运行测试类,右键点击测试类,并选择 Run As -> Junit Test, 该程序的输出将类似于如下:

相加的值是: 2 + 5
@Test sum(): 7 = 7

若要查看JUnit测试的实际结果,Eclipse IDE提供了JUnit的窗口,它显示了测试的结果。 在这种情况下测试成功,JUnit 窗口不显示任何错误或失败,因为我们可以在下面的图片中看到(Errors 0):

现在,如果我们改变这一行的代码:

int testSum = 10;

使整数待测试不相等,则输出将是:

相加的值是: 2 + 5
@Test sum(): 7 = 10

在JUnit窗口,有一个错误将出现,并且会显示这样的信息:

java.lang.AssertionError: expected: but was:

at com.yiibai.junit.CalculateTest.testSum(CalculateTest.java:16)

猜你喜欢

转载自blog.csdn.net/qq_35779969/article/details/80097657