JUnit学习篇

JUnit是一个Java语言的单元测试框架。多用在白盒测试中,不过在写程序时也会用到,这里简单的介绍如果使用Junit,采用的IDE是MyEcplise10。

首先,编写一个要测试的类CalcHub.java。:

package com.jni;

public class CalcHub
{
	public int add(int num1,int num2)
	{
		return num1+num2;
	}
	
	public int square(int num1)
	{
		return num1*num1;
	}
	
	public boolean isNegative(int num1)
	{
		return num1<0;
	}
	
	public String strPing(String str1,String str2)
	{
		return str1+str2;
	}
}
类中有求和、求平方、判断负数、字符串拼接四个方法,由于只是简单测试,所以就比较简单,也没考虑其他因素。

然后我们可以编写测试类,在MyEcplise中,已经集成了Junit。

先选中要测试的CalcHub.java,然后右击在New中,选择其他,搜索 Junit ,就会出现:

选中第一个,出现选择框:

当我们选择3.X时,会生成文件CalcHubTest,我们再添加一些test方法:

package com.jni;

import junit.framework.TestCase;

public class CalcHubTest extends TestCase {
	private CalcHub ch = new CalcHub();

	protected void setUp() throws Exception {
		super.setUp();
		System.out.println("Check in");
	}

	protected void tearDown() throws Exception {
		super.tearDown();
		System.out.println("Check out");
	}

	public void testAdd() {
		assertEquals(100, ch.add(20, 80));
	}

	public void testSquare() {
		assertEquals(100, ch.square(10));
	}

	public void testIsNegative() {
		assertTrue(ch.isNegative(-1));
	}

	public void testStrPing() {
		assertEquals("mylove", ch.strPing("my", "love"));
	}

}

其中testXXX对应着CalcHub中的方法XXX,setup/teardown表示每次testXXX前/后执行一遍。

执行一下CalcHubTest,MyEclipse就跳到JUnit界面了:控制可以看见控制台也打印出来了。

如果之前选着的是JUnit4.x 的话,文件就是这样:

package com.jni;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class CalcHubTest4 {
	private CalcHub ch = new CalcHub();
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		System.out.println("in to test");
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		System.out.println("out of test");
	}

	@Before
	public void setUp() throws Exception {
		System.out.println("Check in");
	}

	@After
	public void tearDown() throws Exception {
		System.out.println("Check out");
	}

	@Test
	public void testAdd() {
		assertEquals(100, ch.add(20, 81));
	}

	@Test
	public void testSquare() {
		assertEquals(100, ch.square(11));
	}

	@Test
	public void testIsNegative() {
		assertTrue(ch.isNegative(1));
	}
	
	@Test
	public void testStrPing() {
		assertEquals("mylove", ch.strPing("my", "love2"));
	}
}

和3.x不同,里面多了setUpBeforeClass、tearDownAfterClass。表示在文件执行前/退出前,各执行一次。

因为CalcHubTest4文件中,改动了数据,所以测试都没通过。

其实在4.x文件中,只要任意方法上面标有@BeforeClass/@AfterClass/@Before/@After,就表示在文件所有testXXX执行前/所有testXXX执行后/每个testXXX执行前/每个testXXX执行后,执行一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值