2013-12-13 15 views
6

Mã của tôi theo quan điểm làassert_select không thành công với dấu nháy đơn (apostrophe) nội dung

<h3 id="account_owner">This is Jhon's account</h3> 

Điểm mấu để kiểm tra mã này là

assert_select "h3#account_owner", "This is Jhon's account" 

thử nghiệm thất bại và nói

"Đây là tài khoản của Jhon "đã được mong đợi nhưng đây là tài khoản Jhon & # x27; s '

Tôi đặt dấu cách giữa "& # x27;" bởi vì nó cũng chuyển đổi thành 'trên đầu ra của câu hỏi này. Có dự đoán nào không? Hoặc làm thế nào tôi nên kiểm tra dòng này?

+0

Hãy thử thêm '# encoding: UTF-8' vào dòng đầu tiên của tệp thử nghiệm của bạn, tham khảo: http://stackoverflow.com/questions/20338047/integration-testing-html-special-characters –

+0

@Taiki Đã thử, nhưng không làm việc. –

Trả lời

3

tôi không tìm thấy một câu trả lời hợp lệ, nhưng để kiểm tra rằng dòng i làm điều gì đó như assert_select "h3#account_owner", "This is Jhon's account".gsub("\'", '&# x27;')

Một lần nữa, tôi đặt một không gian giữa "& # x27;" bởi vì nó cũng chuyển đổi thành 'trên đầu ra của câu trả lời này. Tôi vẫn đang tìm cách tốt hơn để kiểm tra điều này.

0
expect(rendered).to have_css(".columns", :text=>"This is John's account") 

Sử dụng has_css thay vì assert_select.

+2

Vui lòng tránh chỉ giải đáp các câu trả lời và giải thích giải pháp của bạn. – Micho

+1

Mặc dù đoạn mã này có thể giải quyết được câu hỏi, [bao gồm giải thích] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. Ngoài ra, vui lòng không cố gắng gắn mã của bạn với các nhận xét giải thích, điều này làm giảm khả năng đọc của cả mã và giải thích! – kayess

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