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

发表于:2008-5-05 14:32

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

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

分享:

C. 创建定义要执行的测试的配置文件

测试定义是业务对象的序列化实例。ScaTestSpecification 数据类型在 LT_ScaTest 库中提供,在开始此项练习时,您将其添加到了工作区。其结构如图 15 中所示。


图 15. 测试规范数据类型

测试规范数据类型

您可以指定要调用的服务合作伙伴和方法、有效负载和预期的结果。有效负载和预期的结果可以是简单的整数或字符串,或者可以进一步引用包含序列化数据类型的 XML 文件。如果您的测试规范需求更复杂,或许您需要其他基元类型,或者使用多个参数调用服务;那么可以扩展 ScaTestExecutor 类(本文提供了该类的源)。

.tspec 文件包含 ScaTestSpecification 的 XML 格式。与我们先前编写的 PostCode 测试对应的规范为:

<?xml version="1.0" encoding="UTF-8" ?> 
<ScaTest:TestDefinition
	xsi:type="ScaTestFramework:ScaTestSpecification" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:ScaTestFramework="http://LT_Utilities" 
	xmlns:ScaTest="http://scatest/issw/ibm/com">
  <service>I_PostcodePartner</service> 
  <method>getDetailsForPostCode</method> 
  <payloadString>BR1 0AB</payloadString>
  <description>Get details for good postcode</description>
  <expectedResultFile>GoodPostCodeDetails.xml</expectedResultFile> 
</ScaTest:TestDefinition>

这里您可以看到服务合作伙伴 I_PostcodePartner 和方法 getDetailsForPostCode 以及输入字符串 BR1 0AB。您还可以看到在独立文件(在接下来的部分中进行讨论)中指定了预期结果,即带有多个字段的数据对象。另请注意,测试具有文字描述;在测试执行时,会将这些描述写入日志,这有助于在错误发生时能够将错误与特定的测试相关联。

可以用类似的方法指定 testBadPostCodeExternal,我们指定一个不存在的 PostCode 就会导致一个特定的错误:

  <?xml version="1.0" encoding="UTF-8" ?>
   <ScaTest:TestDefinition
	xsi:type="ScaTestFramework:ScaTestSpecification"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:ScaTestFramework="http://LT_Utilities"
	xmlns:ScaTest="http://scatest/issw/ibm/com">
	<service>I_PostcodePartner</service>
  	<method>getDetailsForPostCode</method>
  	<payloadString>Bad Post Code</payloadString>
  	<description>Bad postcode - should fault</description>
  	<expectedFaultName>notFound</expectedFaultName>
   </ScaTest:TestDefinition>
   

要在测试数据文件夹中创建 tspec 文件,请右键单击该文件夹,然后选择 New => Other => Simple=> File,并粘入所显示的内容。您可能注意到,创建的此测试只是简单地复制并修改了一下先前的测试。

D. 创建配置文件,以描述有效负载和预期的结果

testGoodPostCodeExternal 测试需要预期的返回数据的规范,即 PostCodeDetails 数据类型。测试规范包括下面的行:

<expectedResultFile>GoodPostCodeDetails.xml</expectedResultFile>

引用文件 GoodPostCodeDetails.xml,需要将该文件放置在与测试规范相同的位置。

该文件的内容应为:

<?xml version="1.0" encoding="UTF-8"?>
<_:TestDefinition xsi:type="l:PostCodeDetails"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:l="http://L_MailService"
xmlns:_="http://scatest/issw/ibm/com">
  <postCode>BR1 0AB</postCode>
  <city>Bradford</city>
  <county>Yorkshire</county>
  <street>Haworth Terrace</street>
  <addressList>
    <address>12, Haworth Terrace</address>
  </addressList>
  <addressList>
    <address>13, Haworth Terrace</address>
  </addressList>
</_:TestDefinition>

通过右键单击该文件夹,然后选择 New => Other => Simple => File,并粘入所显示的内容,可创建预期的结果文件。在接下来的部分中将描述创建此类文件的技巧。不过,测试中有了此文件后,我们就可以执行了。如果我们先前更改了测试代码,您将注意到,Web 应用程序会在服务器上重新启动,并且控制台将显示类似以下的消息:

[22/05/06 12:40:35:533 BST] 00000051 ApplicationMg A WSVR0221I: Application
started: MT_TestMailServiceApp

所以,新版本的应用程序及其关联的测试数据将自动部署到服务器。

现在可以使用以下几种方法启动测试:

  • 右键单击类,然后选择 Run => JUnit Test

  • 从工具栏中的 Run 下拉列表(图 16)中选择 PostCodeTest

 
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号