HTML-тег огурца в функции - PullRequest
2 голосов
/ 02 августа 2011

У меня есть сценарий огурца, в котором я хочу проверить тег HTML.

Scenario: enter words
    Given I enter "cat,dog"
    When I set tag to "li" and the class to "word"
    Then I should see "<li class=\"word\">cat</li>"
    And I should see "<li class=\"word\">dog</li>"

Это правильный способ написания этого сценария?

1 Ответ

2 голосов
/ 03 августа 2011

Вы должны стремиться к тому, чтобы ваш сценарий читался на простом английском языке. Если бы я не был разработчиком, сценарий не имел бы для меня особого смысла. Вы могли бы сделать что-то вроде этого:

Then I should see cat within a word list element

Шаг для этого будет:

Then /^(?:|I )should see "([^"]*)" within (.*)$/ do |text, parent|
  with_scope(parent) do
    if page.respond_to? :should
      page.should have_content(text)
    else
      assert page.has_content?(text)
    end
  end
end

Генератор огурцов уже должен предоставлять метод with_scope, но здесь он в любом случае:

module WithinHelpers
  def with_scope(locator)
    locator ? within(*selector_for(locator)) { yield } : yield
  end
end
World(WithinHelpers)

И просто обязательно добавьте селектор в ваш файл selectors.rb в файле features / support / selectors внутри оператора case для локатора:

module HtmlSelectorsHelpers

  def selector_for(locator)
    case locator

    when ' a word list element'
      'li.word'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...