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

mmmmmmmopp

mmmmmmmopp

2016-01-29 12:51

JBuilder2005单元测试之捆绑多个用例,JBuilder2005单元测试之捆绑多个用例
  目前我们只为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图标启动创建测试套件的向导,如下图所示:


  图 错误!文档中没有指定样式的文字。选择套件中捆绑
展开更多 50%)
分享

猜你喜欢

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

Java JAVA基础
JBuilder2005单元测试之捆绑多个用例

JBuilder2005单元测试之创建测试固件

Java JAVA基础
JBuilder2005单元测试之创建测试固件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JBuilder2005单元测试之JUnit框架

Java JAVA基础
JBuilder2005单元测试之JUnit框架

JBuilder2005单元测试体验之测试配置

Java JAVA基础
JBuilder2005单元测试体验之测试配置

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JBuilder2005单元测试之业务类介绍

Java JAVA基础
JBuilder2005单元测试之业务类介绍

JBuilder 2005单元测试之慨述

Java JAVA基础
JBuilder 2005单元测试之慨述

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Flash MX 2004视频教程超速入门系列(9)

Flash MX 2004视频教程超速入门系列(9)

《刀剑神域 虚空碎片》刷技能点装备获取心得

《刀剑神域 虚空碎片》刷技能点装备获取心得
下拉加载更多内容 ↓