English 中文(简体)
Cucumber - Features
  • 时间:2024-03-24 15:11:32

Cucumber - Features


Previous Page Next Page  

A Feature 可定义为项目的独立单位或功能。 让我们树立一个社会网络网站的非常常见的榜样。 这一产品/项目的特点如何看待? 基本特征是:

    创建社会网络网站并删除用户。

    社会网络网站用户标识功能。

    分享社会网络网站的照片或录像。

    提出朋友的请求。

    离职。

现在,很显然,在谈论Cucumber时,所试验产品的每一项独立功能都可以被称为一种特征。 在你开始测试之前,我们应确定需要测试的特点。

一个特征通常包含一个清单,用于测试该特征的情景。 一份我们储存特征的文件,关于有待测试的特点和情景的说明,称为Feature file。 我们将在以下章节中更多地了解专题档案。

Gherkins正在测试的一个特征的关键词是“地名”。 所建议的最佳做法是,在特征档案中写出对特征名词的细微描述。 这将满足提供良好文件的需要。

Example

<>Feature——社会网络网站的Login功能。

如果用户名称和密码正确,用户应当能够登录到社会网络网站。

如果用户名称和密码不正确,则应向用户显示错误信息。

如果用户名称和密码正确,用户应当浏览到主页。

Feature Files

The file, in which Cucumber test are written, is known as feature file. 对于正在测试的每一种特征,应当有一个单独的特征档案。 专题档案的延伸必须是“女性”。

人们可以视需要创建尽可能多的专题档案。 为了建立有组织的结构,每个特点都应有一个特征文件。

例:

Sr.No Feature Feature File name
1 User Login userLogin.feature
2 Share the Post sharePost.feature
3 Create Account createAccount.feature
4 Delete Account deleteAccount.feature

点名使用命名公约取决于个人的选择。 在Cucumber没有关于姓名的地面规则。

简单的专题文件包括以下关键词/部分:

    <>Feature——测试中的特征名称。

    (选择) - 描述测试中的特征。

    试验情景是什么。

    Given - 在试验步骤完成之前,先验。

    When——为执行下一步骤应具备的具体条件。

    如果满足了WHEN提到的条件,应该发生什么情况。

Example

Feature——社会网络网站用户标识。

当用户名称和密码正确时,用户应当能够登录到社会网络网站。

当用户名称和密码不正确时,用户应显示错误信息。

如果用户名称和密码正确,用户就应当浏览到主页。

Outpne——社交网站的Login功能。

提供给Facebook的用户浏览器。 当我进入用户名称时,即“设计、用户名和”以及“密码和”密码。 然后,原木应当失败。

| username  | password  |
| username1 | password1 |

关键词在两个条件之间加在一起。 可使用其他关键词,如GIVEN, WHENTHEN

特征档案中没有文字细节。

Steps Definitions

我们已经掌握了我们的特征档案,并确定了试验情景。 然而,这不是完成的工作。 Cucumber don没有真正知道,为特征档案中概述的任何具体情况而执行哪一部法典。

这就需要一个中间——步骤定义文件。 步骤定义文件储存了特征档案中界定的每个步骤之间的绘图工作,并附有一份拟执行的职能守则。

因此,当Cucumber公司执行特征档案中提及的设想时,它会扫描分级定义档案和需要称之为功能的数字。

Example of Step Definition File

pubpc void goToFacebook() { 
   driver = new FirefoxDriver(); 
   driver.navigate().to("https://www.facebook.com/"); 
} 
@When "^user logs in using Username as "([^"]*)" and Password as "([^"]*)"$"
pubpc void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
   driver.findElement(By.id("email")).sendKeys(arg1);
   driver.findElement(By.id("pass")).sendKeys(arg2);
   driver.findElement(By.id("u_0_v")).cpck(); 
} 
@Then"^login should be unsuccessful$" 
pubpc void vapdateRelogin() { 
   if(driver.getCurrentUrl().equalsIgnoreCase(
      "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
         System.out.println("Test Pass");
   } else { 
      System.out.println("Test Failed"); 
   } 
   driver.close(); 
}

因此,根据每项职能,无论你想要执行哪项试验步骤(即GIVEN/THEN/WHEN),你都可以在步骤定义档案中书写。 确保每个步骤都界定了代码/功能。

这一职能可以是 Java,我们可以利用 Java和 Sel的指挥使我们的试验步骤自动化。

Advertisements