(E1)Tapestry-Test

本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。
chinajavawolf  
Tapestry 测试效用
这个库仅是一两个基本的类使它容易构建集成测试套件在 Selenium 周围。
这个库现在基于 Selenium0.8.1
策略启动,在过程中,一个 Selenimum 服务器(轮流,开始和管理一个 web 浏览器),一个 Jetty 实例(为与 web 浏览器对话),和一个 Selenium 客户端(与服务器对话)。
客户端能够请求 URLs, 填充表单数据,点击链接,然后制造断言在输出和行为周围。
用法和配置
这个库的核心部分是一个基类让你可以扩充你的测试用例从: AbstractIntegrationTestSuite.
这个类负责开始一个 Jetty 实例给你的 web 应用服务器,也拷贝一个 Selenium 服务器。它也实现了 Selenium 接口。
你必须告知套件关于定位你的 web 应用。这要在你的 TestNG 配置文件内做:
  1. <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
  2. <suite name="My Tapestry Application" parallel="false" thread-count="10" annotations="1.5" verbose="2">  
  3.  <test name="Integration Tests">  
  4.     <parameter name="tapestry.integration-webapp" value="src/main/webapp"/>  
  5.     <packages>  
  6.       <package name="org.example.myapp"/>  
  7.     </packages>  
  8.  </test>  
  9. </suite>  
<parameter>
元素是一个必须的部分。这将通常是 src/main/webapp.
The other part is to create a unit test suite. Here's an example from one of the Tapestry modules:
其他部分是创建一个单元测试套件。这里一个例子来自 Tapestry 的一个模块:
  1. package org.apache.tapestry.spring;   
  2.     
  3. import org.apache.tapestry.test.AbstractIntegrationTestSuite;   
  4. import org.testng.annotations.Test;   
  5.     
  6. public class TapestrySpringIntegrationTest extends AbstractIntegrationTestSuite   
  7. {   
  8.  @Test  
  9.  public void integration_test() throws Exception   
  10.  {   
  11.     open(BASE_URL);   
  12.     
  13.     type("input""paris in the springtime");   
  14.     clickAndWait("//input[@value='Convert']");   
  15.     
  16.     assertFieldValue("input""PARIS IN THE SPRINGTIME");   
  17.  }   
  18. }   
这是一个非常简单的例子,并且示范了一个
Selenium 混合方法(比如 open() type() )并且方法通过 AbstractIntegrationTestSuite TestSuite 添加给了基类( clickAndWait() assertFieldValue() )。
当然了一个真实的集成测试应该包括很多方法,并且应该需要一个单独的进程执行他们,或者甚至是一个特定的执行顺序。
另外,基类继承了一个普通的异常报告;当一个失败发生在 Selenium 服务器内时,一个更详细的信息,包括当前页面的 HTML 源,被报告给 System.err

你可能感兴趣的:(Web,应用服务器,浏览器,单元测试,tapestry)