Ответ 1
Я бы рекомендовал вместо того, чтобы искать стиль css, вместо этого вы пишете свои тесты, чтобы найти имя класса css.
Таким образом вы можете изменить базовый стиль css, сохраняя класс таким же, и ваши тесты все равно пройдут.
Поиск базового стиля является хрупким. Стили меняются часто. Основываясь на ваших rspecs на поиске определенных элементов стиля, ваши тесты становятся более хрупкими - они с большей вероятностью потерпят неудачу, когда все, что вы делаете, изменит внешний вид div.
Основываясь на ваших тестах на поиск классов css, тесты становятся более надежными. Это позволяет им обеспечить правильность работы вашего кода, не требуя от вас изменения при изменении стиля страницы.
В этом случае, определенно, одним из вариантов может быть определение класса css с именем .hidden
, который устанавливает display:none;
на элемент, чтобы скрыть его.
Вот так:
CSS
.hidden {
display:none;
}
HTML:
<div class="hidden">HIDE ME!</div>
водосвинка:
it {should have_css('div.hidden') }
Этот capybara просто ищет div с классом hidden
- вы можете сделать этот помощник более сложным, если вам нужно.
Но главное - присоединить стили к именам классов css, а затем привязать свои тесты к классам, а не к стилям.