Как вы используете HTML :: селектор в Rails 3? - PullRequest
0 голосов
/ 17 августа 2011

Я проверяю форму. Похоже:

<form accept-charset="UTF-8" action="/the_action" method="post">
  <select id="id" name="z[z_id]">
    <option value="7">Foo</option> 
    <option value="11">Bar</option> 
  </select>
</form>

Как вы получаете все параметры значения в массив (7,11) для тестирования? Эти значения являются идентификаторами модели, поэтому я хочу протестировать определенные атрибуты для каждого объекта.

Я прочитал api docs (http://api.rubyonrails.org/) для HTML :: Selector, но это не помогло.

Также использовал assert_select из Rails Guides (http://guides.rubyonrails.org/testing.html#testing-views), но не выяснил, как использовать значение иначе, чем проверка на равенство.

У вас есть рекомендуемые вводные ресурсы?

Спасибо.

Редактировать: Вот код в представлении:

<%= form_tag( :action => :the_action) do %>
<%= select :model_name, :model_id, Model.where(:user_id => 1).collect{|m| [m.full_name, m.id]}, :selected => selected_value, :include_blank => false %>
<%= submit_tag "view model" %>
<% end %>

Для этой функции нет кода контроллера.

1 Ответ

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

Звучит так, как будто вы тестируете модель в представлении. Есть ли какая-то причина не просто проверять наличие селектора в представлении и проверять атрибуты модели в тестах модели?

Edit:

Таким образом, я бы решил создать метод для модели

def options_for_user(user_id)
   self.where(user_id => 1).collect{|m| [m.full_name, m.id]}
end

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

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