Behat测试:从输入中获取值,将其乘以数字并匹配结果

时间:2015-10-13 09:56:09

标签: behat gherkin

我有一个TEXTBOX(readonly),其中包含一些随机值,例如ex。 2(这是产品数量)。 除此之外还有一个BUTTON(加号按钮)和一个SPAN来显示结果。

现在,每当我点击加号按钮时,它应该是MULTIPLY 5(这是产品的价格)到文本框中的数字(产品数量),并在SPAN中显示结果。

<input type="text" readonly="readonly" value="2" id="product-qty" />
<button id="add-qty" value="Add Quantity"/>
<span id="show-result">10</span>

现在使用behat测试我正在为上面的场景编写一个功能。 有人可以帮我写这篇文章。

问题是如何从文本框中获取值并将其乘以5? 并将其与SPAN中的值相匹配。

Scenario: Check product cart
  Given I am on "detail-page"
  When I click on the element "#add-qty"
  #fetch value from the input multiply by it 5 and match the value with the content in the SPAN
  And I wait 2000 milliseconds
  Then I should see "Product added successfully"

1 个答案:

答案 0 :(得分:1)

一种方法是为您的功能创建步骤定义。

您可以在方案中添加And I add quantity for "product-qty"

然后在你的FeatureContext.php(或等效的)中添加如下内容:

    /**
 * @Given I add quantity for :arg1
 */
public function iAddQuantityFor($arg1)
{
    $this->pressButton('Add Quantity');

    $page = $this->getMink()->getSession()->getPage();
    $quantity = (int)$page->find('css', '#product-qty')->getAttribute('value');

    $result = $quantity * 5;
    $actual = (int)$page->find('css', '#show-result')->getHtml();

    if ($result !== $actual) {
        throw new \Exception('Incorrect result');
    }
}