eclipse中使用junit的方式如下:
1.首先新建一个项目叫JUnit_Test,编写一个Calculator类,能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。该类代码如下:
package andycpp;
public class Calculator ...
private static int result; // 静态变量,用于存储运行结果
public void add(int n) ...
result = result + n;
public void substract(int n) ...
result = result - 1; //Bug: 正确的应该是 result =result-n
public void multiply(int n) ...
// 此方法尚未写好
public void divide(int n) ...
result = result / n;
public void square(int n) ...
result = n * n;
public void squareRoot(int n) ...
for (; ;) ; //Bug : 死循环
public void clear() ... // 将结果清零
result = 0;
public int getResult() ...
return result;
2.将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图:
在弹出的属性窗口中,首先在左边选择“JavaBuildPath”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:
然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进这个项目。
3.生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“NewàJUnit Test Case”。如下图所示:
在弹出的对话框中,进行相应的选择,如下图所示:
点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,仅对“加、减、乘、除”四个方法进行测试
package andycpp;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest ...
private static Calculator calculator = new Calculator();
@Before
public void setUp() throws Exception ...
calculator.clear();
@Test
public void testAdd() ...
calculator.add(2);
calculator.add(3);
assertEquals(5, calculator.getResult());
@Test
public void testSubstract() ...
calculator.add(10);
calculator.substract(2);
assertEquals(8, calculator.getResult());
@Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply() ...
@Test
public void testDivide() ...
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
4.运行测试代码:按照上述代码修改完毕后,在CalculatorTest类上点右键,选择“Run As àJUnitTest”来运行我们的测试,如下图所示:
运行结果如下:
进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,一个测试失败”
网上下载一个JUnit包,后缀名为 jar . 打开eclipse ,新建项目,项目建好后在项目名称上单击鼠标右键,选择build path-->Config build path ,在properties for....窗口中左边选择Java Build Path 右边选择Libraries, 再点击Add External Jars 。找到你下载的那个JUnit包,点击打开,然后点击OK,就行了。。然后新建一个类,在开头加入 import org.junit.*;具体使用如下:
import org.junit.*;
public class Test{
@Test public void test(){
Assert.assertEquals(result,fun);//判断结果是否相等,result是你认为fun的运行结果,fun是你所要测试的那个方法
Assert.assertTrue (条件)//判断条件是否为真
}
}
如果测试正确,eclipse左边窗口会出现一个绿条,否则是红条。。。并有错误提示
写一个要测试的类Simple如下:
package jexi.test;
public class Simple {
private int n;
public Simple(int n) {
this.n = n;
}
// 返回绝对值:
public int foo() {
return n>0 ? n : (-n);
}
}
foo()方法返回绝对值,下一步,我们准备用JUnit对这个foo()方法进行全面测试。
首先,在eclipse中,创建一个java工程,把pluginsorg.junit_3.8.1junit.jar包含进去:
然后写好Simple.java,为它创建一个JUnit Test Case:
在弹出的对话框中填入测试类的名字:SimpleTest,勾上setUp():
编写测试代码:
package jexi.test;
import junit.framework.TestCase;
public class SimpleTest extends TestCase {
private Simple s1, s2;
protected void setUp() throws Exception {
super.setUp();
s1 = new Simple(10);
s2 = new Simple(-7);
}
public void testFoo() {
assertTrue(s1.foo()==10);
assertTrue(s2.foo()==7);
}
}
其中setUp()方法是构造初始化环境,我们在setUp中创建两个Simple的实例,testFoo()是用来测试foo()的测试方法,总是以test 方法名构成,然后在测试方法中测试:s1.foo()==10,如果返回值与期待的结果10相等,assertTrue()就执行成功,我们现在可以运行Run->Run As...->JUnit Test,左侧会显示测试结果:
如果我们把Simple的foo()方法改成:
public int foo() {
return n;
}
再次运行JUnit Test,现在assertTrue(s2.foo()==7);测试结果就不正确了,JUnit会报告哪一行结果不正确:
双击就可以快速定位到测试失败的方法调用上。