Как утверждать, что текст существует только 1 раз в Минке

В настоящее время я работаю над небольшим проектом, и я решил немного поиграть с Behat/Mink, и я столкнулся со своей первой проблемой, которую я не могу решить в одиночку.

У меня есть эта функция, и она работает как положено

Scenario: Create Customer
  Given I am on "/login"
  When  I fill in "username" with "testuser"
  And   I fill in "password" with "123"
  And   I press "Login"
  And   I follow "Customers"
  And   I follow "Create"
  Then  I should be on "/customer/new"
  And   I fill in "email" with "[email protected]"
  And   I press "Save"
  Then  I should be on "/customer/"
  And   I should see "[email protected]"

Когда я нажимаю «Сохранить», проект проверяет, существует ли электронное письмо. Если это так, он просто перенаправляет на /customer. Как я могу утверждать, что текст есть только один раз (а не два и более) на моей странице?


person CBergau    schedule 03.10.2013    source источник


Ответы (1)


Вы можете написать новый шаг, например:

/**
  * @Then /^I should see "([^"]*)" exactly "([^"]*)" times$/
  */
public function iShouldSeeTextSoManyTimes($sText, $iExpected)
{
    $sContent = $this->getSession()->getPage()->getText();
    $iFound = substr_count($sContent, $sText);
    if ($iExpected != $iFound) {
        throw new \Exception('Found '.$iFound.' occurences of "'.$sText.'" when expecting '.$iExpected);
    }
}

И тогда есть сценарий, такой как:

Scenario: Some many times
Given I am on "http://en.wikipedia.org"
Then I should see "Welcome" exactly "1" times
person Nassim    schedule 04.10.2013