2012-02-09 14 views
1

私はBehatBundleとMinkBundleを使ってSymfony2アプリケーションをテストし始めました。今、いくつかのページのレスポンスをチェックするシナリオを作成しようとしています。これらのページは、エンティティのIDを含むURLを介してアクセスできます。今私はDoctrineによってどのIDが挿入されたかを知る方法を知りたいと思っています。BehatでURLを生成する方法

はここに例を示します

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でも可能ですか?

答えて

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()); 
} 
+0

恐ろしい!私は結局それほど難しくはないと思う;) –

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を設定します。

+0

おかげで、しかし、IDが自動生成され...ので、何のセッターがありません。 –

関連する問題