Java测试新手_Java单元测试进阶之单元测试利器JUnit(新手上路)

如果你之前没有用过JUnit,那么赶紧按照一下步骤体验一下:

以下步骤都是在Eclipse下操作的,如果你不是使用Eclipse,那么请自己适配一下。

1、新建一个Java工程

2、右键工程>properties>java build path>libraries>add library>JUNIT_HOME,选中后就可以使用JUnit了。

3、新建一个被测试的类,下面是第一部分讲的CoolClass

0818b9ca8b590ca3270a3433284dd417.png

/************************************************************

0818b9ca8b590ca3270a3433284dd417.png * 项目名称:lhjTest

0818b9ca8b590ca3270a3433284dd417.png * 文件名称:CoolClass.java

0818b9ca8b590ca3270a3433284dd417.png * 文件描述:CoolClass.java

0818b9ca8b590ca3270a3433284dd417.png * 作者:Administrator

0818b9ca8b590ca3270a3433284dd417.png * 创建日期:2007-3-23

0818b9ca8b590ca3270a3433284dd417.png * 修改记录:

0818b9ca8b590ca3270a3433284dd417.png ***********************************************************/

0818b9ca8b590ca3270a3433284dd417.png

package

org.lhj.cool.junit;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

/**0818b9ca8b590ca3270a3433284dd417.png *@authorAdministrator

0818b9ca8b590ca3270a3433284dd417.png*/

0818b9ca8b590ca3270a3433284dd417.png

public

class

CoolClass

0818b9ca8b590ca3270a3433284dd417.png

{

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png/**0818b9ca8b590ca3270a3433284dd417.png     * constructor

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngpublicCoolClass()

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.pngsuper();

0818b9ca8b590ca3270a3433284dd417.png    }0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png/**0818b9ca8b590ca3270a3433284dd417.png     *@paraminputStr -the string need to be reverse.

0818b9ca8b590ca3270a3433284dd417.png     *@returnnull if the inputStr is "",others the reverse string of the inputStr.

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngpublicString reverseString(String inputStr)

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.pngif(null==inputStr)

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.pngthrownewNullPointerException("Error:the input string is null.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.pngif("".equals(inputStr))

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.pngreturnnull;

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.pngintlength=inputStr.length();

0818b9ca8b590ca3270a3433284dd417.pngchar[] outputChars=newchar[length];

0818b9ca8b590ca3270a3433284dd417.pngfor(inti=0; i

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            outputChars[i]=inputStr.charAt(length-i-1); 

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.pngreturnnewString(outputChars);

0818b9ca8b590ca3270a3433284dd417.png    }0818b9ca8b590ca3270a3433284dd417.png    

0818b9ca8b590ca3270a3433284dd417.png/**0818b9ca8b590ca3270a3433284dd417.png     * this method is for test.

0818b9ca8b590ca3270a3433284dd417.png     *@paramargs

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngpublicstaticvoidmain(String[] args)

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png//set up the invironment0818b9ca8b590ca3270a3433284dd417.pngCoolClass testClass=newCoolClass();

0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//test the null param0818b9ca8b590ca3270a3433284dd417.pngtry0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            testClass.reverseString(null);

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Error:expect throw nullPointerExceptioin but not.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.pngcatch(NullPointerException e)

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Succeed:test the null param for reverseString succeed.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//test the "" param0818b9ca8b590ca3270a3433284dd417.pngif(!(null==testClass.reverseString("")))

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Error:expect return the null value but not.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.pngelse0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Succeed:test the "" param for reverseString succeed.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//test the "aaAA" param0818b9ca8b590ca3270a3433284dd417.pngif(!"AAaa".equals(testClass.reverseString("aaAA")))

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Error:expect return AAaa but not.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.pngelse0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Succeed:test the aaAA param for reverseString succeed.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//test the "AAaa" param0818b9ca8b590ca3270a3433284dd417.pngif(!"aaAA".equals(testClass.reverseString("AAaa")))

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Error:expect return aaAA but not");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.pngelse0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            System.out.println("Succeed:test the AAaa param for reverseString succeed.");

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//the other tests...

0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//tear down the environment0818b9ca8b590ca3270a3433284dd417.pngtestClass=null;

0818b9ca8b590ca3270a3433284dd417.png    }0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png}

0818b9ca8b590ca3270a3433284dd417.png

4、在CoolClass右键>new >JUnit test Case,在对话框中输入类名即可,本次输入CoolClassJTest,点击确定,便生成了测试类。

5、编辑生成的类,加入测试代码后CoolClassJTest代码如下:

0818b9ca8b590ca3270a3433284dd417.png

/************************************************************

0818b9ca8b590ca3270a3433284dd417.png * 项目名称:lhjTest

0818b9ca8b590ca3270a3433284dd417.png * 文件名称:CoolClassJTest.java

0818b9ca8b590ca3270a3433284dd417.png * 文件描述:CoolClassJTest.java

0818b9ca8b590ca3270a3433284dd417.png * 作者:Administrator

0818b9ca8b590ca3270a3433284dd417.png * 创建日期:2007-3-24

0818b9ca8b590ca3270a3433284dd417.png * 修改记录:

0818b9ca8b590ca3270a3433284dd417.png ***********************************************************/

0818b9ca8b590ca3270a3433284dd417.png

package

org.lhj.cool.junit.test;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

import

junit.framework.TestCase;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

import

org.lhj.cool.junit.CoolClass;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

/**0818b9ca8b590ca3270a3433284dd417.png *@authorAdministrator

0818b9ca8b590ca3270a3433284dd417.png*/

0818b9ca8b590ca3270a3433284dd417.png

public

class

CoolClassJTest

extends

TestCase

0818b9ca8b590ca3270a3433284dd417.png

{

0818b9ca8b590ca3270a3433284dd417.pngprivateCoolClass testClass;

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png/*(non-Javadoc)

0818b9ca8b590ca3270a3433284dd417.png     * @see junit.framework.TestCase#setUp()

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngprotectedvoidsetUp()throwsException

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.pngsuper.setUp();

0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png        testClass=newCoolClass();

0818b9ca8b590ca3270a3433284dd417.png    }0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png/*(non-Javadoc)

0818b9ca8b590ca3270a3433284dd417.png     * @see junit.framework.TestCase#tearDown()

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngprotectedvoidtearDown()throwsException

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.pngsuper.tearDown();

0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png        testClass=null;

0818b9ca8b590ca3270a3433284dd417.png    }0818b9ca8b590ca3270a3433284dd417.png    

0818b9ca8b590ca3270a3433284dd417.png/**0818b9ca8b590ca3270a3433284dd417.png     * test the null param

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngpublicvoidtestNullParamForReverseString()

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.pngtry0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png            testClass.reverseString(null);

0818b9ca8b590ca3270a3433284dd417.png            fail();

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.pngcatch(NullPointerException e)

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png        }0818b9ca8b590ca3270a3433284dd417.png    }0818b9ca8b590ca3270a3433284dd417.png    

0818b9ca8b590ca3270a3433284dd417.png/**0818b9ca8b590ca3270a3433284dd417.png     * test the "" param

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngpublicvoidtestEmptyStringForReverseString()

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png        assertNull(testClass.reverseString(""));

0818b9ca8b590ca3270a3433284dd417.png    }0818b9ca8b590ca3270a3433284dd417.png    

0818b9ca8b590ca3270a3433284dd417.png/**0818b9ca8b590ca3270a3433284dd417.png     * test the simple param

0818b9ca8b590ca3270a3433284dd417.png*/0818b9ca8b590ca3270a3433284dd417.pngpublicvoidtestSimpleParamForReverseString()

0818b9ca8b590ca3270a3433284dd417.png{

0818b9ca8b590ca3270a3433284dd417.png//test the "aaAA" param0818b9ca8b590ca3270a3433284dd417.pngassertEquals("AAaa", testClass.reverseString("aaAA"));

0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//test the "AAaa" param0818b9ca8b590ca3270a3433284dd417.pngassertEquals("aaAA", testClass.reverseString("AAaa"));

0818b9ca8b590ca3270a3433284dd417.png        

0818b9ca8b590ca3270a3433284dd417.png//the other tests...0818b9ca8b590ca3270a3433284dd417.png}0818b9ca8b590ca3270a3433284dd417.png}

0818b9ca8b590ca3270a3433284dd417.png

上面用fail来进行是否抛异常的测试,如果没有抛异常就会fail;assertNull判断结果是否为null,如果不是就fail;assertEquals判断两个值是否相等。

一般常用的判断语句就以上几个,比if判断简洁多了,同时省掉了很多System.out.println语句。

6、保存后在Java编辑器右键>run as>JUnit Test

如果运行的测试都成功了,则会显示绿棒:

否则,红棒来了

在下面的failure trace你可以看到错误的原因,

双击第一行会弹出一下对话框

通过该对话框你可以知道出错的原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值