使用rspec / capybara来测试css元素是否收到了正确的属性?

时间:2014-12-22 17:47:25

标签: ruby-on-rails-4 rspec capybara

在我的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>

一切正常,但我现在想知道如何测试保存的值是否正确应用为div出现的背景颜色。

我试过(使用rspec和capybara):     p page.find(&#39; .favorite_color&#39;)[:style]

但我最终以nil作为输出。有没有人对如何获得背景颜色有任何建议,所以我可以测试它是否正确应用?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该填写它并期望在您重新访问该页面时它就在那里。

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')