Используйте rspec/capybara, чтобы проверить, что элемент css получил правильный атрибут?

В моем приложении rails я спрашиваю пользователя о его любимом цвете. Они выбирают значение (шестнадцатеричный ввод). Цвет сохраняется (например, #D2D2D2), а затем применяется в качестве элемента background-color к предварительно определенному классу css:

<html>
 <body>
   <style>
     .favorite_color { background-color: #D2D2D2; } /* updated dynamically <%= @user.favorite_color %> */
   </style>
   <div class="favorite_color">My favorite color</div>
   <div class="some_content">Some content</div>
   <div class="favorite_color">My favorite color again</div>
 </body>

Everything works fine, but I am wondering now how to test that the saved value is correctly applied as the background-color wherever the div appears.

Я пробовал (используя rspec и капибару): p page.find('.favorite_color')[:style]

но я получаю ноль в качестве вывода. Есть ли у кого-нибудь предложения о том, как я могу получить цвет фона, чтобы я мог проверить, правильно ли он применяется?

Спасибо!


person apleroy    schedule 22.12.2014    source источник


Ответы (1)


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

fill_in 'the_id_of_the_input_field', with: '#D2D2D2'

expect(page).to have_field('the_id_of_the_input_field', with: '#D2D2D2')

или если вы предпочитаете использовать класс

fill_in '.favorite_color', with: '#D2D2D2'

expect(page).to have_field('.favorite_color', with: '#D2D2D2')
person Joel    schedule 22.12.2014