Каков наилучший способ сделать запрос POST от огурца для создания нового объекта? - PullRequest
1 голос
/ 13 апреля 2010

В некоторых из моих сценариев cuke я хочу отправить пользователя на страницу с объектом в params, чтобы Rails создал новый объект в базе данных. Есть ли удобный способ отправки параметров POST + в действие (используя что-то в огурце или в rails) или мне нужно написать свою собственную функцию, используя Net :: Http?

Ответы [ 2 ]

4 голосов
/ 16 апреля 2010

Просто посетите контроллер, которому вы хотите опубликовать некоторые параметры, чтобы создать объект.

Вам не нужна форма для этого. Просто отправьте значения на любой контроллер, который обрабатывает эти сообщения, и продолжайте тестирование. Все, что заботит контроллер - это получение параметров для работы, однако они публикуются.

visit "/user", :post, :firstName => "Foo", :lastName => "Bar"

Как указано в вебрат документации :

visit (url = nil, http_method = :get, data = {})

ОБНОВЛЕНИЕ: Если я не ошибаюсь, у Capybara есть более или менее замененный Webrat, и, как правило, существует мнение, что тесты на уровне огурца должны использовать реальный пользовательский интерфейс, а не API, с которым взаимодействует интерфейс. Тем не менее, это все еще возможно , и я все еще нахожу это полезным сам, когда в начале проекта я просто хочу протестировать свои контроллеры и выяснить пользовательский интерфейс позже.

То есть в Capybara, в зависимости от вашего водителя, но при условии rack / test :

page.driver.post('/user', { firstName: "Foo", lastName: "Bar" })
0 голосов
/ 13 апреля 2010

Похоже, у вас нет формы для этого действия? Если у вас есть форма, вы просто завершаете взаимодействие через веб-интерфейс (используя выбранный вами инструмент ... webrat и т. Д.)

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

Given that an object exists
Do ...

На шаге «Данные» создайте необходимый объект, который также соответствует предположению на остальных шагах теста.

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