SCA模块创建自动化的单元测试

发表于:2008-5-12 14:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

分享:

测试方法

        JUnit 3.8 命名约定规定所有测试方法名称应以单词 test 开头。这些方法不带任何参数,是空方法。测试失败通过抛出未经检查的异常来指示,通常使用 JUnit 提供的断言和故障方法指示。测试成功通过测试方法的完成来指示。

因而,我们的测试方法类似于:

import java.util.List;

import org.apache.cactus.ServletTestCase;

import com.ibm.websphere.sca.Service;
import com.ibm.websphere.sca.ServiceManager;
import commonj.sdo.DataObject;
import com.ibm.swservices.sca.test.junit.ScaTestExecutor;

public void testGoodPostCode() {
Service service = (Service) ServiceManager.INSTANCE
.locateService("I_PostcodePartner");

DataObject postCodeDetails
= (DataObject)service.invoke(
"getDetailsForPostCode", "BR1 0AB");
assertEquals("Bradford", postCodeDetails.getString("city"));
assertEquals("Yorkshire", postCodeDetails.getString("county"));
List addressList = postCodeDetails.getList("addressList");
assertEquals(2, addressList.size());
assertEquals("12, Haworth Terrace",
postCodeDetails.getString("addressList[1]/address"));
assertEquals("13, Haworth Terrace",
postCodeDetails.getString("addressList[2]/address"));
}

该代码显示:

        使用服务管理器,通过合作伙伴引用名称 I_PostcodePartner 访问该服务。 
        使用邮政编码 BR1 0AB 调用服务操作。 
        继承由操作返回的数据的断言。请特别注意用于导航 DataObject 的 XPath 表达式。我们使用 addressList[1]/address 之类的表达式来访问地址列表中的个别地址字符串;数组中第一个元素的索引值为 1。 
        将此代码粘帖到您的测试类,并保存。有了此代码后,我们就做好了执行测试的准备。

执行测试

        首先,我们需要将测试模块添加到服务器。我们假设在您的 WebSphere Integration Developer 安装中已经具备了合适的 WebSphere Process Server 测试环境。确保此服务器已启动,然后在 Web 透视图的 Servers 视图中,右键单击服务器,然后选择 Add Remove Projects。并将 MP_MailServiceApp 和 MT_TestMailServiceApp 应用程序添加到服务器。

        现在,我们可以使测试类在以下两个上下文中执行测试:

        部署到服务器并在 SCA 环境中运行的类。
        该类可用于 Cactus Servlet,因此将合适的请求提交到该 Servlet 时可以执行该类。

        可以作为 JUnit 测试独立执行的 Java 类。
        在独立执行时,Cactus 框架将测试类用作在服务器中部署的类的代理,并调用 Cactus Servlet。

        通过右键单击并选择 Junit Test,Eclipse JUnit 工具使我们能够执行独立的 JUnit 测试类。不过,我们的测试使用 Cactus 与服务器通信,所以必须提供命令行参数来指定服务器运行的位置。

        在 Web 透视图的 Project Explorer 视图中,请选择 PostCodeTest 类,然后从 Run 菜单选择 Run... 以显示 Run 对话框。

        在可能的配置列表中,选择 JUnit,并单击 New。检查测试窗格,将看到项目和测试类值已填充。还可以看到您可以使用此对话框启动一系列的测试;所有类都在所选目录中。

        选择 Arguments 窗格。 在 VM arguments 下输入以下代码(图 12):

-Dcactus.contextURL=http://localhost:9080/MT_TestMailServiceJUnitWeb

图 12. Cactus 测试的运行配置

sss

        请注意,这指定了 localhost 和端口 9080;如果 HTTP 请求的服务器或端口与此不同,则将需要调整此字符串以匹配您的选择。

选择 Run 来启动测试。

        请注意,您已建立了此启动配置,以后只需选择此类并单击 Run => JUnit Test 就可以重复执行它。JUnit 视图然后显示运行测试的结果(图 13)。

图 13. 测试执行的结果
ssss

        您可以从 JUnit 视图选择性地重新执行测试;右键单击类或测试,然后选择 Run。

价值398元的测试课程免费赠送,填问卷领取吧!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2022
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号