JUnit学习篇

来源:互联网 发布:方舟低配置优化补丁 编辑:程序博客网 时间:2024/06/06 14:00

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();@BeforeClasspublic static void setUpBeforeClass() throws Exception {System.out.println("in to test");}@AfterClasspublic static void tearDownAfterClass() throws Exception {System.out.println("out of test");}@Beforepublic void setUp() throws Exception {System.out.println("Check in");}@Afterpublic void tearDown() throws Exception {System.out.println("Check out");}@Testpublic void testAdd() {assertEquals(100, ch.add(20, 81));}@Testpublic void testSquare() {assertEquals(100, ch.square(11));}@Testpublic void testIsNegative() {assertTrue(ch.isNegative(1));}@Testpublic void testStrPing() {assertEquals("mylove", ch.strPing("my", "love2"));}}

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

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

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

原创粉丝点击