白盒测试之Junit测试工具的使用

白盒测试之Junit测试工具的使用

本篇讲解软件测试技术之Junit测试工具的使用。Eclipse中集成了JUnit,不用安装就可以在项目中测试相关的类,并且可以调试测试用例和被测试类,可以非常方便的编写TestCase。(下载eclipse 点击此处; 下载JDK1.8 提取码:gx2k)

JUnit简介

Junit是由Erich Gamma和Kent Beck编写的一个开源的由Java开发的用于测试的回归测试框架(regression testing framework),主要应用于单元测试,即白盒测试,主要用于帮Java开发人员编写单元测试代码。Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这些条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了。由于Junit相对独立于所编写的代码,所以测试代码的编写可以先有实现代码的编写,XP中推崇的Test First Design的实现有了现成的手段:用Junit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,在运行测试,直到测试成功。然后对代码进行修改和优化,运行测试成功,则修改成功。

Junit包含的几个基本的概念

  • TestCase:代表一个测试用例,每一个TestCase实例都对应一个测试,这个测试通过这个TestCase实例的名字标志,以便在测试结果中指明哪个测试出现了问题.TestCase继承自Assert,因此可以实现各种断言。
  • TestSuite:代表需要测试的一组测试用例,也就是测试用例的集合,
  • TestFixtrue:代表一个测试环境。它用于组合一组测试用例,这组测试用例需要共同的测试运行环境。


Junit单元测试中Assert断言的使用

  1. assertEquals(expected, actual):查看两个对象是否相等。类似于字符串比较使用的equals()方法;assertNotEquals(first, second):查看两个对象是否不相等。expected为用户期望某一时刻对象的值,actual为某一时刻对象实际的值。如果这两值相等的话(通过对象的equals方法比较),说明代码运行是正确的。
  2. assertNull(object):查看对象是否为空;assertNotNull(object):查看对象是否不为空。
  3. assertSame(expected, actual):查看两个对象的引用是否相等,类似于使用“==”比较两个对象;assertNotSame(unexpected, actual):查看两个对象的引用是否不相等,类似于使用“!=”比较两个对象。
  4. assertTrue(String message, boolean condition) 要求condition == true,查看运行的结果是否为true;assertFalse(String message, boolean condition) 要求condition == false,查看运行的结果是否为false。以判断某个条件是真还是假,如果和预期的值相同则测试成功,否则测试失败。
  5. assertArrayEquals(String message, XXX[] expecteds,XXX [] actuals) 要求expected.equalsArray(actual),即查看两个数组是否相等。
  6. assertThat(String reason, T actual, Matcher matcher) :要求matcher.matches(actual) == true,使用Matcher做自定义的校验。
  7. fail:能使测试立即失败,这种断言通常用于标记某个不应该被到达的分支。通常用于测试在应该抛出异常的时候确实会抛出异常。( 来源:百度百科


实践是检验真理的唯一标准

过程十分详细,喜欢的小伙伴点个赞

  1. 创建项目 File -> New -> Java Project,创建项目名为test

2. 创建类,右单击test项目 -> New -> Class,在com.junit包下创建testCode

3.简单编写代码(加减乘除)

package com.junit;

public class testCode {
	public int add(int a,int b) {
		return a + b;
	}
	public int substract(int a,int b) {
		return a - b;
	}
	public int multiply(int a,int b) {
		return a * b;
	}
	public int divide(int a,int b) {
		return a / b;
	}
}

4. Junit导入,右单击test项目 -> Properties

Java Build Path -> Libraries -> Add Library -> Junit ->Next

在下拉框中选中Junit 4,然后点击 Finish

可以看到上图中Libraries下出现了JUnit 4,接下来点击 Apply and Close


5.按下快捷键(Ctrl+N),在JUnit下选中JUnit Test Case 点击Next

将testJunit创建到com.junit.test包下

6. 编写testJunit

package com.junit.test;

import static org.junit.Assert.*;
import org.junit.Test;
import com.junit.testCode;
public class testJunit {

	testCode t1 = new testCode();

	@Test
	public void testAdd() {
		assertEquals(t1.add(2, 3), 5);
	}
	@Test
	public void testSubstract() {
		assertEquals(t1.substract(5, 3), 2);
	}
	@Test
	public void testMultiply() {
		assertEquals(t1.multiply(2, 3), 6);
	}
	@Test
	public void testDivide() {
		assertEquals(t1.divide(6, 2), 3);
	}
}

7. 运行测试;Run -> Run As -> JUnit Test

全部通过,测试成功(若不成功,则显示为红带,并在下面的Failure Trace中说明原因)

小伙们,以上便就是一个简单的JUnit在Eclipse中使用的实例

关注我,带你一起写bug.

编辑于 2020-03-12 07:58