Проверка на отсутствие атрибута значения входного тега - PullRequest
3 голосов
/ 17 июня 2010

Как я могу подтвердить отсутствие атрибута HTML в тесте Rails RSpec?

Я могу убедиться, что тег input имеет атрибут value и что это пустая строка, например:

response.should have_tag("input[name=?][value=?]", "user[password]", "")
response.should have_tag("input[name=?][value=?]", "user[password_confirmation]", "")

Но я хочу убедиться, что мои поля ввода вообще не имеют атрибута value (т.е. пустое поле).

Ответы [ 3 ]

3 голосов
/ 18 июня 2010

Разобрался:

response.should_not have_tag("input[name=?][value]", "user[password]")
response.should_not have_tag("input[name=?][value]", "user[password_confirmation]")

Просто используйте атрибут value без =? часть. Поэтому, если тег input имеет атрибут value, независимо от того, что он содержит, тест не пройден.

1 голос
/ 03 сентября 2011

На различных сайтах есть многочисленные сообщения, указывающие, что have_tag возвращает ошибку, что такого метода, как has_tag, нет.

Мой обходной путь - использовать have_selector:

response.should have_selector("input#user_password", :content => "")

, где user_password - этоатрибут id нужного входного тега (поле пароля), который я нашел, посмотрев на источник для моей страницы (в данном случае страницу регистрации), и знак фунта показывает, что я использую поле id вводаtag.

Я убедился, что это работает, изменив значение для: content на "x", и мой тест не прошел.

Использование rspec-rails 2.5.0 rspec 2.5.0

0 голосов
/ 17 июня 2010

как насчет response.should_not have_tag("....")

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