2012-07-03 33 views
6

html Tôi đã được tạo ra bởi ruby ​​với:cách kiểm tra thuộc tính html với rspec?

<%= link_to "change", "http://gravatar.com/emails" %> 

mà kết quả trong:

<a href="http://gravatar.com/emails">change</a> 

nhưng tôi muốn đảm bảo rằng liên kết sẽ mở trong một tab mới với

target="blank" 

thuộc tính

kiểm tra rspec trông giống như:

it { should have_link('change', href: 'http://gravatar.com/emails', target: '_blank') } 

nhưng thử nghiệm vẫn trôi qua khi tôi không có thuộc tính đích được tạo.

+0

http://stackoverflow.com/questions/7691052/rspec-testing-for-html-entities-in-page-content –

+0

Tôi đã thấy câu hỏi này, nhưng bạn có thể giải thích cách trả lời này không rs câu hỏi của tôi nhiều hơn một chút? Cách giải quyết được đề xuất như là một câu trả lời cho câu hỏi này dường như được viết bằng jQuery. Tôi không chắc làm thế nào tôi thực hiện điều đó với các bài kiểm tra rspec như chúng được viết bằng ruby. –

Trả lời

16

Các công trình sau đây cho tôi với Capybara 1.1.2:

it { should have_selector("a[href='http://gravatar.com/emails'][target='_blank']") } 
0

Tôi đang sử dụng have_selector để xử lý tất cả các thuộc tính:

should have_selector('a', 
        :href => 'http://gravatar.com/emails', 
        :target => '_blank', 
        :content => 'change' 
        ) 

tôi nghĩ rằng bạn cần Capybara có mà khớp http://rubydoc.info/github/jnicklas/capybara/Capybara/RSpecMatchers/HaveSelector

+0

xin lỗi vì đã trả lời muộn. Tôi đã thử phương pháp của bạn nhưng nó vẫn không nhìn thấy nó như là một lỗi khi tôi không có target = "blank" trong html. Tôi có đá quý 'capybara', '1.1.2' trong nhóm: test. Tôi không chắc chắn tại sao bài kiểm tra sẽ vượt qua khi tất cả các tham số không có ở đó. –

Các vấn đề liên quan