Java单元测试进阶之单元测试框架的出现(初现雏形)
来源:互联网 发布:北京科技大学网络教育 编辑:程序博客网 时间:2024/05/17 02:29
上篇示范了在main方法中进行单元测试,还讨论了这种测试的一些缺点。为了克服main方法进行单元测试的缺点,本篇将讨论使用一个简单的类进行单元测试的过程。透过这个类你可以看到单元测试框架的雏形。
下面的类还是对CoolClass的reverseString方法进行测试,请看如下代码:
/************************************************************
* 项目名称:lhjTest
* 文件名称:CoolClassTest.java
* 文件描述:CoolClassTest.java
* 作者:Administrator
* 创建日期:2007-3-24
* 修改记录:
***********************************************************/
package org.lhj.cool.junit.test;
import org.lhj.cool.junit.CoolClass;
/**
* @author Administrator
*/
public class CoolClassTest
{
private CoolClass testClass;
/**
* set up the environment
*/
public void setUp()
{
testClass = new CoolClass();
}
/**
* tear down the environment
*/
public void tearDown()
{
testClass = null;
}
/**
* test the null param
*/
public void testNullParamForReverseString()
{
try
{
testClass.reverseString(null);
System.out.println("Error:expect throw nullPointerExceptioin but not.");
}
catch (NullPointerException e)
{
System.out.println("Succeed:test the null param for reverseString succeed.");
}
}
/**
* test the "" param
*/
public void testEmptyStringForReverseString()
{
if (!(null == testClass.reverseString("")))
{
System.out.println("Error:expect return the null value but not.");
}
else
{
System.out.println("Succeed:test the "" param for reverseString succeed.");
}
}
/**
* test the simple param
*/
public void testSimpleParamForReverseString()
{
//test the "aaAA" param
if (!"AAaa".equals(testClass.reverseString("aaAA")))
{
System.out.println("Error:expect return AAaa but not.");
}
else
{
System.out.println("Succeed:test the aaAA param for reverseString succeed.");
}
//test the "AAaa" param
if (!"aaAA".equals(testClass.reverseString("AAaa")))
{
System.out.println("Error:expect return aaAA but not");
}
else
{
System.out.println("Succeed:test the AAaa param for reverseString succeed.");
}
//the other tests...
}
/**
* this method is for test
* @param args
*/
public static void main(String[] args)
{
CoolClassTest testCase = new CoolClassTest();
testCase.setUp();
testCase.testNullParamForReverseString();
testCase.testEmptyStringForReverseString();
testCase.testSimpleParamForReverseString();
testCase.tearDown();
}
}
* 项目名称:lhjTest
* 文件名称:CoolClassTest.java
* 文件描述:CoolClassTest.java
* 作者:Administrator
* 创建日期:2007-3-24
* 修改记录:
***********************************************************/
package org.lhj.cool.junit.test;
import org.lhj.cool.junit.CoolClass;
/**
* @author Administrator
*/
public class CoolClassTest
{
private CoolClass testClass;
/**
* set up the environment
*/
public void setUp()
{
testClass = new CoolClass();
}
/**
* tear down the environment
*/
public void tearDown()
{
testClass = null;
}
/**
* test the null param
*/
public void testNullParamForReverseString()
{
try
{
testClass.reverseString(null);
System.out.println("Error:expect throw nullPointerExceptioin but not.");
}
catch (NullPointerException e)
{
System.out.println("Succeed:test the null param for reverseString succeed.");
}
}
/**
* test the "" param
*/
public void testEmptyStringForReverseString()
{
if (!(null == testClass.reverseString("")))
{
System.out.println("Error:expect return the null value but not.");
}
else
{
System.out.println("Succeed:test the "" param for reverseString succeed.");
}
}
/**
* test the simple param
*/
public void testSimpleParamForReverseString()
{
//test the "aaAA" param
if (!"AAaa".equals(testClass.reverseString("aaAA")))
{
System.out.println("Error:expect return AAaa but not.");
}
else
{
System.out.println("Succeed:test the aaAA param for reverseString succeed.");
}
//test the "AAaa" param
if (!"aaAA".equals(testClass.reverseString("AAaa")))
{
System.out.println("Error:expect return aaAA but not");
}
else
{
System.out.println("Succeed:test the AAaa param for reverseString succeed.");
}
//the other tests...
}
/**
* this method is for test
* @param args
*/
public static void main(String[] args)
{
CoolClassTest testCase = new CoolClassTest();
testCase.setUp();
testCase.testNullParamForReverseString();
testCase.testEmptyStringForReverseString();
testCase.testSimpleParamForReverseString();
testCase.tearDown();
}
}
在Eclipse的java编辑器里右键>run as> java application即可运行本测试类。
在main方法里我们可以看到运行的过程:先setUp环境,然后test测试的方法,最后tearDown环境。
这就是使用测试类的好处。 可以看出,main方法显得精简了很多,环境设置、测试方法都放到main外面成为单独的方法,各个测试也独立开来不影响其他的测试方法。
但是随着测试类的增多,你会发现存在如下问题:
1、每个类都要写个main方法,显得比较麻烦。
2、使用System.out.println使得测试比较笨,需要找更加简洁的方法来代替。
3、还是无法进行自动化测试(批量运行main也行,但是性能方面肯定有问题)。
以上的问题就是框架要出现的原因,使用框架可以避免重复劳动,提高效率。下一篇将介绍单元测试框架的一个例子。
0 0
- Java单元测试进阶之单元测试框架的出现(初现雏形)
- Java单元测试进阶之单元测试框架的出现(框架兴起)
- Java单元测试进阶之单元测试框架的出现(萌芽篇)
- Java单元测试进阶之单元测试利器JUnit(新手上路)
- Java单元测试进阶之单元测试利器JUnit(测试自动化)
- Java单元测试进阶之单元测试利器JUnit(Ant与持续集成)
- Java单元测试进阶之如何进行界面测试(眼见为实)
- SpringBoot进阶之单元测试
- 简单的Java单元测试框架
- java 单元测试框架-JUnit4
- Java单元测试框架-JUnit4
- Java单元测试框架Junit
- Java单元测试框架Junit
- JAVA 单元测试框架
- iOS开发进阶之单元测试
- iOS开发进阶之单元测试
- 【小白讲白盒】单元测试进阶之路
- Junit4 -Java单元测试框架使用的例子
- redis源码解析----epoll的使用
- 快发组件让网站编辑效率提升4倍-逐浪CMS编辑助手(浏览器插件)发布
- RHEL 6.5 下安装oracle11G
- 2015/5/2日-月总结
- pesudo-class of <a> element
- Java单元测试进阶之单元测试框架的出现(初现雏形)
- Android 事件的传递总结
- Java之旅--硬件和Java并发(神之本源)
- C遍历LUA表和调用LUA函数的简单Demo
- Js之原生类型-数字
- QML布局管理--基于锚的布局
- eclipse常用快捷键Get;set;
- java-容器
- Java单元测试进阶之单元测试框架的出现(框架兴起)