F. 组装模块
最后,测试模块需要访问我们正在测试的模块的接口库。还需要使用测试模块调用正在测试的组件,我们通过将合适的接口导入到测试模块并将它们正确地连接来执行此任务。
切换回 Business Integration 透视图的 Business Integration 视图,展开 MT_TestMailService 项目,并打开 Assembly 编辑器。
将导入添加到组装图,将其重命名为 PostCode,然后将 I_PostCode 接口添加到导入。
为导入生成 SCA 绑定。现在关系图应与图 9 所示类似。
图 9. 要测试的带接口的导入,SCA 绑定
在 Properties 窗格的 Binding 选项卡中,浏览并从 MailService 模块中选择 PostCodeExport,从而将此导入绑定到我们正在测试的特定模块(图 10)。
图 10. 绑定到正在测试的模块的导入
您需要使此导入对您的测试 Web 应用程序(这是一个非 SCA 项目)可用,所以将需要一个独立引用。将独立引用图标添加到您的关系图,并将其与您的导入连接。可能要求您回答以下两个问题:
第一,您是否希望创建匹配引用:单击 OK。
第二,您是否希望将 WSDL 接口转换为 Java? 接口。通过选择 OK 接受此选项非常重要。执行此操行会简化检查服务调用结果所需的代码。
现在组装图应与图 11 所示类似。
图 11. 对 PostCode 服务的独立引用(带合作伙伴名称)
请记下合作伙伴引用名称;在测试调用服务时将用到此名称。
保存组装图。
为 SCA 组件创建测试
完成准备工作后,现在我们可以开始编写单元测试了。我们首先通过创建一个调用 getDetailsForPostCode() 服务操作的测试,并预期该操作是有效的 PostCode,然后检查响应数据。我们将使用标准的 SCA 和 SDO 编程技术。您会看到,使用这些编程技术十分繁琐,并且编写此类测试相当耗时。不过,在考虑使用其他较简单方法编写这些测试之前,我们需要完成供练习使用的预备操作。
我们首先创建 JUnit 测试类,将单个测试添加到该类,最后执行该测试。
测试类
JUnit 版本 3.8 的常见编程模型是创建测试类,它扩展了 JUnit 提供的一个 TestCase 类。在我们的示例中,我们将使用 Cactus 框架在服务器上执行测试,所以必须扩展 Cactus 测试类 org.apache.cactus.ServletTestCase。
转到 Web 透视图的 Project Explorer 视图,并展开 Dynamic Web Projects => MT_TestMailServiceJUnitWeb => Java Resources => JavaSource。
右键单击 Java Source,并选择 New => Package 以创建适当的包。右键单击该包,并选择 New => Class 以创建类,并输入如下代码:
|
然后可以将一个或多个测试方法添加到此类。因为我们已经将类添加到了 Web 应用程序,所以在将模块添加到服务器时,我们的测试类可以在服务器环境中执行。
测试类表示在开发时发生的测试执行的常见单元,所以我们应仔细考虑任何一个类中包括了多少个测试。如果太少,类的管理会很费力。如果太多,类的执行时间会很长。根据经验,每个类五到十个测试用例比较合适。