0

Symfony2 プロジェクトで Behat と Mink を使用して記憶機能をテストしようとしています。しかし、私のアプローチはうまくいきません。

私は次のことを試しました:

#behat.yml

Scenario: Checking Remember me
  Given I am on "/"
  When  I fill in "username" with "john"
  And   I fill in "password" with "john"
  And   I check "remember_me"
  And   I press "Login"
  Then  I should be logged in
  When  I restart the browser
  Then  I should be logged in

Scenario: Not Checking Remember me
  Given I am on "/"
  When  I fill in "username" with "john"
  And   I fill in "password" with "john"
  And   I press "Login"
  Then  I should be logged in
  When  I restart the browser
  Then  I should be logged out

私の機能コンテキストには、(特に) 次のメソッドが含まれています。

#FeatureContext.php

/**
 * @Then /^I should be logged in$/
 */
public function iShouldBeLoggedIn()
{
    $this->assertElementOnPage('.user-area');
}

/**
 * @Given /^I should be logged out$/
 */
public function iShouldBeLoggedOut()
{
    $this->assertElementNotOnPage('.user-area');
}

/**
 * @When /^I restart the browser$/
 */
public function iRestartTheBrowser()
{
    $driver = $this->getSession()->getDriver();
    $session = new Session($driver);
    $session->start();
    $session->visit('/');
}

問題は にありますiRestartTheBrowser()。これは、やるべきことをしていません。セッション データをクリアする方法を探していますが、Cookie は保持します。何か助けはありますか?

4

1 に答える 1

1

あなたのスペックは次のように表現したほうがいいと思います

Scenario: Checking Remember me
    Given I have logged in before and selected remember me
    When I visit "some protected web page"
    Then I should be logged in

私を覚えておくためのGiven状態を設定できます。おそらく、このコンテキストは、セッションをリセットする必要性を分離するのに役立ちますか?

上記は、素人や開発者にとっても読みやすいです

于 2013-02-01T18:03:03.113 に答える