Огурец и УДАЛИТЬ с Mongoid - PullRequest
0 голосов
/ 18 августа 2011

Итак, я сейчас пытаюсь протестировать приложение Rails, связанное с Mongoid с Cucumber.У меня все настроено (или я так полагаю), так что будет запущен следующий тест:

Feature: Create and manage about entries
  In order to use the about data effectively
  As an application consumer
  I want to create and manage some about entries

  Scenario: Create about entries
    Given the following abouts exist
      | title             |   body_copy   |
      | "About entry #1"  | "hello body!" |
    When I go to the list of about entries
    Then I should see "About entry #1"

  Scenario: Create and retreive specific about entry
    Given the following abouts exist
      | id                        | title             |   body_copy   |
      | 4e4d37756ea257f031000003  | "About entry #1"  | "hello body!" |
    When I go to about entry with id 4e4d37756ea257f031000003
    Then I should see "About entry #1"

В моем файле путей есть следующие записи для поддержки вышеуказанных тестов:

when /^the list of about entries$/i
  '/abouts'
when /^about entry with id (.+)$/i
  "/abouts/#{$1}"

Эти тесты отлично работают.Однако мне нужно проверить действие удаления.Я провел некоторые исследования в Интернете, но, похоже, все проходит через пользовательский интерфейс для удаления этих элементов, и проблема, с которой я столкнулся, заключается в том, что мое приложение Rails обслуживает только файлы JSON и JSON, и мне нужен более лучший (более программный) способ тестирования вещей безПользовательский интерфейс участвует.Что касается макетов, я использую стандартные макеты, встроенные в Pickle.Я открыт для использования другого программного обеспечения для насмешек, если это необходимо, например, от фабриканта, но вы должны будете дать мне несколько подробных отзывов о том, как я могу подключить это.В настоящее время у меня есть мой тест на удаление (который НЕ работает):

  Scenario: Delete about
    Given the following abouts exist
      | title   | body_copy    |
      | title 1 | body_copy 1  |
      | title 2 | body_copy 2  |
      | title 3 | body_copy 3  |
      | title 4 | body_copy 4  |
    When I delete the 3rd about
    Then I should see the following abouts:
      | Title   | body_copy    |
      | title 1 | body_copy 1  |
      | title 2 | body_copy 2  |
      | title 4 | body_copy 4  |

Проблема в том, что автоматически сгенерированный тест (как показано выше) использует вызов метода click_link "Destroy", но это не будетРабота.

1 Ответ

0 голосов
/ 19 августа 2011

Вам потребуется изменить реализацию шага удаления (в вашем web_steps.rb, если вы используете Cucumber по умолчанию), чтобы отправить HTTP-запрос DELETE.Я бы порекомендовал для этого гем RestClient, но есть множество других вариантов.

Книга огурцов, в настоящее время находящаяся в стадии бета-тестирования от PragProg, содержит главу об использовании Cucumber для тестирования подобных API REST.

...