Как утверждать, что элемент ввода пуст в тестах Ruby on Rails

#html #ruby-on-rails #forms #testing

#HTML #ruby-на-рельсах #формы #тестирование #ruby-on-rails

Вопрос:

Я хочу убедиться, что поля пароля пусты при редактировании пользователя. Как мне сделать это в функциональном тестировании?

Я пробовал оба этих варианта:

 assert_select "input[name=?][value=?]", 'user[password1]', ''
  

и

 assert_tag :tag => "input", :attributes => {:name => "user[password1]", :value => ""}
  

Оба завершаются неудачей, потому что в сгенерированном html отсутствует value= атрибут. Я не вижу никакого способа проверить, что атрибут не присутствует в сгенерированном html?

Ответ №1:

Попробуйте это:

 assert_select 'input:not([value])[name="user[password1]"]', true
  

Комментарии:

1. Большое спасибо, это работает как шарм! Последний параметр true , похоже, не нужен.

Ответ №2:

в cucumber / webrat что-то вроде page.should_not have_xpath("//input[contains(@value, "")]") работает

Комментарии:

1. Спасибо! Я рассматривал эти альтернативные платформы тестирования, но пока не решился на решающий шаг. Однако подобные вещи заставляют усилия казаться стоящими.