当前位置: 首页 > 图文教程 > 网络编程 > JSP > JBuilder2005单元测试之捆绑多个用例

JSP
Servlet及JSP中的多线程同步问题
使用Ant和Tomcat创建Web应用
如何直接在浏览器内运行SQL命令
Servlet、Jsp中的多国语言显示
html与jsp开发分离技术
通过Jsp发送动态图像
Servlets和JSP Pages最佳实践
学习在JSP中使用JavaBeans
JSP显示内容缓存技巧
应用JDOM处理数据库到XML转换的JSP实现
JSP中tomcat的SQL Server2000数据库连接池的配置
用JSTL实现JSP应用程序快速开发
浅谈4种类型的JDBC驱动程序
怎样设置 JSP 的虚拟目录
Java 中对文件的读写操作之比较
javamail在jsp中调用
jsp中任意文字转Unicode的通用模块
JSP与SQL SERVER的留言本
jspSmartUpload上传下载全攻略
Tomcat5.x中的虚拟主机配置方法

JSP 中的 JBuilder2005单元测试之捆绑多个用例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 49 ::
收藏到网摘: n/a

目前我们只为Subsection类生成了一个测试用例,在这节里,我们按照前述的方法,通过Test Case向导为StringUtils类创建一个测试用例代码框架,并编写测试方法,然后将这两个测试用例捆绑组合在一个测试套件中一起运行。
  选中StringUtils类,通过File->New..->Test,双击Test Case图标为StringUtils类的string2Array()方法创建测试用例,接受默认的测试用例类名TestStringUtils。
  在向导生成的测试用例代码框架中,删除测试固件(因为是静态方法,没有必要用固件),即删除StringUtils的成员变量声明,setUp()和tearDown()方法。并在类中定义一个isArrayEquals()的方法,删除向导生成的testString2Array()测试方法体中的内容,编写自己的测试代码,其最终代码如下所示:
  代码清单 错误!文档中没有指定样式的文字。TestStringUtils:StringUtils类的测试用例
  1. package chapter25;
  2. import junit.framework.*;
  3. public class TestStringUtils extends TestCase
  4. {
  5.  public void testString2Array() {
  6.   String str1 = null, str2 = ", str3 = "a", str4 = "a,b,c",str5 = ",a,b,";
  7.   String[] arr1 = null, arr2 = {"}, arr3 = {"a"}, arr4 = {"a", "b", "c"},
  8.   arr5 = {", "a", "b", "}, trimArr5 = {"a", "b"};
  9.
  10.  assertNull(StringUtils.string2Array(str1, ',', false));
  11.  assertTrue(isArrayEquals(arr1, StringUtils.string2Array(str1, ',', false)));
  12.  assertTrue(isArrayEquals(arr2, StringUtils.string2Array(str2, ',', false)));
  13.  assertTrue(isArrayEquals(arr3, StringUtils.string2Array(str3, ',', false)));
  14.  assertTrue(isArrayEquals(arr4, StringUtils.string2Array(str4, ',', false)));
  15.  assertTrue(isArrayEquals(arr5, StringUtils.string2Array(str5, ',', false)));
  16.  assertTrue(isArrayEquals(trimArr5, StringUtils.string2Array(str5, ',', true)));
  17.  assertFalse(isArrayEquals(StringUtils.string2Array(str5, ',', false),
  18.  StringUtils.string2Array(str5, ',', true)));
  19. }
  20.
  21. //判断两个字符数组是否相等
  22. private boolean isArrayEquals(String[] arr1, String[] arr2) {
  23.  if (arr1 == null || arr2 == null) {
  24.   if (arr1 == null && arr2 == null) {
  25.    return true;
  26.   } else {
  27.    return false;
  28.   }
  29.  } else if (arr1.length != arr2.length) {
  30.   return false;
  31.  } else {
  32.   for (int i = 0; i < arr1.length; i++) {
  33.    if (!arr1[i].equals(arr2[i])) {
  34.     return false;
  35.    }
  36.   }
  37.   return true;
  38.  }
  39. }
  40. }

  虽然JUnit框架提供了许多assertEquals()的重载方法,但却没有入参是两字符串数组的assertEquals()重载方法,所以我们需要自己定义一个判断两字符串数组是否相同的方法:isArrayEquals(),如第22~39行所示。
  在testString2Array()方法中,我们提供了覆盖多数情况的字符串测试点(特殊转换字符串和其目标值),如第6~8行所示。尔后调用assertXxx()设置测试规则。你也可以像上一节中的TestSubsection测试用例一样运行它。
  注意:
  如果你在内容窗格TestStringUtils文件标签上右击,发现弹出的菜单中只有Run Test using "TestSubsection"时,请在Project->Project Properties...->Run->在Run设置页中取消TestSubsection运行设置项的Context Menu选项,否则只会运行原TestSubsection的测试用例。
  只包括10个类左右的小型项目工程也许无需用到测试套件,仅通过逐一单独运行测试用例来完成测试就可以了,但对于一个包含较多测试用例的工程,测试套件能给你带来极大的方便,它将多个测试用例捆绑在一起运行,达到一呼而百应的批量处理效果。
   下面我们就来为TestSubsection和TestStringUtils这两个测试用例创建一个测试套件,并通过测试套件运行这两个测试。
  1.File->New...->Test->在Test页中双击Test Suite图标启动创建测试套件的向导,如下图所示:

  图 错误!文档中没有指定样式的文字。选择套件中捆绑的测试用例

  在对话框列表中已经列出了工程中已有的两上测试用例类,你可以通过右边的Add...和Remove添加或删除测试用例。你可以通过Add Recursively,将指定目录下的所有测试用例一并加入。
  点击Next到下一步。
  2.指定测试套件类名。


  图 错误!文档中没有指定样式的文字。指定测试套件类名

  接受JBuilder为测试套件所提供的默认类名,按Finish完成该测试套件的创建,其代码如下所示:
  代码清单 错误!文档中没有指定样式的文字。测试套件类
  1. package chapter25;
  2. import junit.framework.*;
  3. public class TestSuite1
  4. extends TestCase
  5. {
  6.  public TestSuite1(String s) {
  7.   super(s);
  8.  }
  9.
  10. public static Test suite() {
  11.  TestSuite suite = new TestSuite();
  12.  suite.addTestSuite(chapter25.TestStringUtils.class);
  13.  suite.addTestSuite(chapter25.TestSubsection.class);
  14.  return suite;
  15. }
  16. }
  测试套件类最主要的代码是suite()方法(第10~15行),首先在方法中声明一个TestSuite变量,通过addTestSuite()方法将TestStringUtils和TestSubsection测试用例捆绑在一起,你也可以通过这个方法添加其他的测试用例类。
  TestSuite除可以将整个测试用例捆绑外,还可以捆绑另外的一个测试套件或一个测试用例中的测试方法:
  l 添加一个测试套件
  suite.addTest(suite_1)
  l 添加测试用例某个方法
  suite.addTest(new TestSubsection ("testGetValue"))
  在工程窗格资源树的TestSuite1文件节点上右击,在弹出的菜单中选择Run Test using Defaults,JBuilder启动JBTestRunner,运行套件中捆绑的所有测试用例,其窗口如下图所示:


  图 错误!文档中没有指定样式的文字。用测试套件运行组合运行多个测试用例

  TestSuite下有两个测试用例类,测试用例节点下是测试方法节点。