51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3366|回复: 0
打印 上一主题 下一主题

用WSAD的JUnit向导执行单元测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-7-14 10:13:13 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
WebSphere Application Developer(WSAD)5.0提供了一组JUnit向导,简化了JUnit的应用。其中一个向导能够自动生成JUnit测试代码,同时,WSAD的调试视图还能够清楚地显示出JUnit测试的结果。
接下来我们来看看如何在WSAD中对下面的Java类进行JUnit测试:
// ReverseName.java
import org.apache.oro.text.perl.*;
public class ReverseName {
  private Perl5Util perl = new Perl5Util();
  public String reverse(String in) {
    String out = perl.substitute( "s%([A-Z][a-z]*) ([A-Z][a-z]*)%$2, $1%", in);
    return out;
  }
}


这个类的功能是输入一个字符串,例如“aa bb”,然后把它翻转成逗号分隔的形式,即“bb,aa”。这个类用到了Jakarta的ORO包Perl4Util类的正则表达式功能。
为了进行测试,首要要从http://jakarta.apache.org的Jakarta网站下载和安装ORO包,从http://www.junit.org下载和安装JUnit工具。当然,你也可以修改ReverseName类,不要让它使用Perl5Util类,免去安装ORO包之劳。
下载好ORO包和JUnit工具后,在WSAD中创建一个新的项目,然后将ORO包和JUnit工具加入到项目的构造路径,再把上面的代码粘贴到ReverseName.java。将ORO包和JUnit工具加入构造路径的步骤是:在浏览器视图中选择项目,按鼠标右键,选择“特性”,再选择“Java构建路径”,在JAR文件选择面板中,找到JUnit的安装路径并加入junit.jar文件。
创建JUnit测试实例的步骤是:在浏览器视图中右击ReverseName类文件,选择菜单“新建”→“其他”,打开左边树形列表的Java节点,选择JUnit,然后在右边清单中选择“测试实例”,点击“下一步”。

向导显示出JUnit测试实例对话框。认可默认的源文件夹、包名称、测试实例名称等参数。选中main方法“public static void main(String[] args)”的检查框,这时,“对下列项添加TestRunner语句”选项将变为可用。在下拉列表框中,选择text ui。选中另外两个方法——setup()、tearDown()的检查框。点击“下一步”。




在“选择应为其创建测试方法存根的方法”对话框中,选中reverseName方法,然后点击“完成”。




向导将生成下列代码:
// ReverseNameTest.java
import junit.framework.TestCase;
public class ReverseNameTest extends TestCase {
  public ReverseNameTest(String arg0) {super(arg0);}
  public static void main(String[] args) {
    junit.textui.TestRunner.run(ReverseNameTest.class);
  }
  protected void setUp() throws Exception {
    super.setUp();   
  }
  protected void tearDown() throws Exception {
    super.tearDown();
  }
  public void testReverseName() {
  }
}


对于该类,注意下面几点:
⑴ 它导入了junit.framework包。
⑵ 它扩展了junit.framework.TestCase。
⑶ 它包含了两个特殊的JUnit方法,即setUp和tearDown。
⑷ 它只有一个测试方法,testReverseName,方法名称中带有必需的前缀test。
⑸ 它的main方法运行JUnit的文本版,调用特定的测试方法。
自动生成的ReverseNameTest类还需要加入一些测试代码。不过本例不需要在setUp和tearDown方法中加入代码,之所以要在向导中选中这两个方法,是为了示范向导的功能。对于复杂一些的测试,我们可以让setUp方法打开几个文本流文件(或者是提取记录集的JDBC数据库连接),然后让tearDown方法关闭这些文件流(或JDBC数据库连接),JUnit将自动在测试开始、结束处调用setUp和tearDown方法。
下面我们加入一个测试。在编辑器中打开ReverseNameTest,修改testReverseName方法,使其包含下列代码:
public void testReverseName() {
  ReverseName  fix = new ReverseName();
  assertEquals(
    fix.reverse("aa bb"),
        "bb, aa");
  assertEquals(
    fix.reverse("cc dd"),
        "dd, cc");
  assertEquals(
      fix.reverse("ee ff"),
        "ee, ff");
}


TestCase基类提供了大量的assert方法,可以对各种各样的条件进行测试。
保存修改之后,接下来就可以运行测试了。在ReverseNameTest代码窗口仍打开的状态下,打开“调试”透视图。点击ReverseNameTest编辑器,确保该类处于可见状态。点击“运行”按钮(图标为跑步的人)旁边的下拉箭头,选择“运行为”→“JUnit测试”。注意屏幕的底部有一个JUnit视图,JUnit视图显示出下列内容:
Failer Trace section:
junit.framework.ComparisionFailure:
expected<ff, ee>but was<ee, ff>
at denoncourt.Reverse


如果所有测试都顺利通过,JUnit不会显示任何错误信息。

转自:测试时代
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-14 17:42 , Processed in 0.061573 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表