2009-01-07 41 views
6

Cách tốt nhất để đảm bảo rằng RJS phù hợp được tạo ra trong một hành động Bộ điều khiển là gì?Cách tốt nhất để kiểm tra RJS trong thông số kỹ thuật của Bộ điều khiển RSpec là gì?

Ví dụ, tôi muốn đảm bảo rằng một div được đánh dấu như vậy:

def new 
    render :update do |page| 
    page.visual_effect :highlight, :some_div 
    end 
end 

Rant: này nhanh chóng trở thành một trong những lý do tôi phát triển mệt mỏi của RSpec sau khi sử dụng nó cho một năm . Đây sẽ là một câu hỏi dễ, nhưng đó là câu hỏi mà dường như không ai có câu trả lời.

Tôi đã được nhắc nhiều lần rằng RSpec chỉ định hành vi và những gì tôi đang cố gắng làm ở đây chỉ là "mã thử nghiệm". Làm nổi bật của: some_div là hành vi như xa như tôi có thể nói.

Trả lời

4

Không thể thiết lập kiểm tra bộ điều khiển cho đầu ra của phản hồi và tìm một số định dạng javascript?

xhr :get, :new 
    response.should be_success 
    response.should have_text("... test for JS response ...") 

Tôi cũng có thể sử dụng Selen để kiểm tra đầy đủ hơn điều này trên máy khách và kiểm tra Bộ điều khiển có nhiều kiểm tra "sự tỉnh táo" hơn.

+0

Tôi đã thử điều này, nhưng tôi chỉ có thể thử nghiệm hiệu ứng hình ảnh; không phải replace_html, v.v. Tôi có thể kiểm tra thứ gì đó đang được thay thế, nhưng không phải là tên một phần, người dân địa phương, v.v. –

+0

Vâng, nó không lý tưởng ... Tôi có xu hướng đẩy hầu hết thử nghiệm này ra Selenium và chỉ giữ kiểm tra Bộ điều khiển ở mức rất cao, kiểm tra dòng chảy ứng dụng chung. –

4

rspec cung cấp cho bạn trình trợ giúp has_rjs kết thúc tốt đẹp assert_select_rjs. Dưới đây là một số chi tiết cụ thể:

http://jonathan.tron.name/2007/11/24/rspec-and-inline-rjs

Đáng tiếc là chỉ assert_select_rjs bao gồm:

:replace, :replace_html, :show, :hide, :toggle, :remove and :insert_html 

Vì vậy, đây sẽ không xử lý các visual_effect từ câu hỏi của bạn. Tuy nhiên, plugin ARTS không hỗ trợ hiệu ứng hình ảnh.

http://github.com/timocratic/arts/tree/master

Bạn sẽ có thể kết hợp điều đó với rspecs mới 'đặc tả/interop/test'.

http://blog.davidchelimsky.net/2009/2/2/rspec-works-with-test-unit

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