如何在Behat中生成网址

时间:2012-02-09 11:36:01

标签: symfony behat mink

我已经开始使用BehatBundle和MinkBundle测试我的Symfony2应用程序。现在我正在尝试编写检查某些页面响应的方案。可以通过包含实体ID的URL访问这些页面。现在我想知道如何知道Doctrine插入了哪个ID。

以下是一个例子:

Background:
    Given There is no "Category" in database
      And I have a category "Todo Lists"

  Scenario: The category can be viewed
    Given I am on "/category/<id here>"
     Then I should see "Todo Lists"

问题是我不知道如何找出所插入类别的ID。这可能与Behat / Mink有关吗?

2 个答案:

答案 0 :(得分:5)

在您的上下文类中添加自定义步骤,如下所示:

/**
 * @Given /^I am on the "([^"]*)" category page$/
 * @When /^I go to the "([^"]*)" category page$/
 */
public function gotoCategoryPage($categoryName)
{
    // find category by $categoryName here
    // $category = ...

    $s = $this->getSession();
    $s->visit($this->locatePath('/category/'.$category->getId());
}

答案 1 :(得分:0)

您可以使用以下内容修改Given语句:

Given There is no "Category" in database
  And I have a category "Todo lists" with id "1"

Scenario: The category can be viewed
Given I am on "/category/1"
 Then I should see "Todo Lists"

然后为你的名字设置id类别。