快速业务通道

追求代码质量 - 使用Selenium和TestNG进行编程式测试 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
里使用了 TestNG 驱动 Selenium,我将创建一个 DbUnit fixture,它将在 测试 级别上运行。TestNG 支持在五种粒度级别上运行 fixture。最低的两种级 别,方法和类是最常见的 —— 用于每个测试方法的 fixture 或者 用于整个类的 fixture。之后,TestNG 为一个测试集合(定义在 TestNG 配置 文件中并由 test 元素指定)定义了一个 fixture,为一组 测试(定义在 TestNG 的 Test 注释中)定义了一个 fixture。

测试细节

创建一个 DbUnit fixture 并在测试级别上运行,这意味着运行任何测试之 前,测试类的集合将共享相同的逻辑,为数据库正确地播种。在本文的示例中, 在运行每个逻辑测试集合前,我希望数据库具有一组干净的数据。使用 DbUnit 的 CLEAN_INSERT 命令确保在先前运行的测试中创建的行被删除掉 —— 因此, 我可以重新运行测试,该测试可以不断创建数据并且不用考虑数据库约束。

此外,我希望 fixture 能够依赖参数化数据,这使我在运行某个测试之前, 能够灵活地切换种子文件,甚至是特定数据库的位置。将 TestNG 与参数相关联 起来再简单不过了:我所需做的仅仅是使用 Parameters 注释装饰 fixtrue,声 明方法签名中相应的参数,并提供 TestNG 配置文件中的值。

清单 8 定义了一个简单的 DbUnit fixture,它使用所需的种子文件播种数 据库。请注意:该 fixture 被定义为包含五个 参数。(这可能非常多,但是在 fixture 中包含参数不是很好吗?)

清单 8. 测试集合的 DbUnit fixture

public class  DatabaseFixture {   @Parameters({"seed-path","db-driver","db-url","db-user","db- psswrd"})   @BeforeTest   public void seedDatabase(String seedpath, String driver,    String url, String user, String pssword) throws  Exception {   IDatabaseConnection conn = this.getConnection(driver, url,  user, pssword);   IDataSet data = this.getDataSet(seedpath);   try {    DatabaseOperation.CLEAN_INSERT.execute(conn, data);   }finally {    conn.close();   }   }   private IDataSet getDataSet(String path) throws IOException,  DataSetException {   return new FlatXmlDataSet(new File(path));   }   private IDatabaseConnection getConnection(String driver,    String url, String user, String pssword ) throws  ClassNotFoundException,    SQLException {   Class.forName(driver);   Connection jdbcConnection =    DriverManager.getConnection(url, user, pssword);   return new DatabaseConnection(jdbcConnection);   } }

要将实际的值与清单 8 中的参数相关联,我必须在 TestNG 的 testng.xml 文件中定义它们,如清单 9 所示:

清单 9. TestNG 的 testng.xml 文件中定义的特定于 DbUnit 的参数

<parameter name="seed-path" value="test/conf/gt15- seed.xml"/>   <parameter name="db-driver"  value="org.hsqldb.jdbcDriver"/>   <parameter name="db-url"  value="jdbc:hsqldb:hsql://127.0.0.1"/>   <parameter name="db-user" value="sa"/>   <parameter name="db-psswrd" value=""/>

追求代码质量 - 使用Selenium和TestNG进行编程式测试(6)

时间:2010-12-10 IBM Andrew Glover

通用参数值

现在我已经定义了一个灵活的 fixt

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号