Я пытаюсь проверить, соответствует ли поле ввода одной из моих фабрик, где поле пусто.
address => {:first_name => '', :last_name => ''}
При проверке того, что находится в поле ввода, я использовал это:
assert_select '#first_name[value=?]', address.first_name
За исключением того, что это не работает, если имя пустое. Я получу эту ошибку, и тест не пройден.
Expected at least 1 element matching "#first_name[value='']", found 0.
<false> is not true.
Это имеет смысл, поскольку сгенерированный код не будет иметь атрибута value. Есть ли лучший способ проверить значение поля ввода?
На данный момент, чтобы проверить это, я могу проверить, является ли поле адреса пустым, а затем проверить, есть ли поле ввода без атрибута значения. Но это грязно и многословно.
Пример универсальной проверки, которая работает, но занимает много времени:
if address.first_name.blank?
assert_select '#first_name[value]', 0
assert_select '#first_name[type=text]', 1
else
assert_select '#first_name[value=?]', address.first_name
end
Связанная информация, которую я использую:
Hpricot 0.8.1
Нокогири 1.1.1
Рельсы 2.2.2
Thoughtbot-Shoulda 2.0.5
Вебрат 0.4.1