2012-06-14 26 views
5

Chúng tôi đang cố vô hiệu hóa nút gửi nhất định sau khi nhấp vào nút đó. Một cái gì đó như thế này:Làm cách nào để bạn kiểm tra nút gửi bị tắt sau khi nhấp vào capybara?

assert !page.has_css?("#review_button[disabled='disabled']") 
click_button "Review" 
assert page.has_css?("#review_button[disabled='disabled']") 

Vấn đề, tất nhiên là biểu mẫu gửi trước xác nhận thứ hai được chọn. Có cách nào để vô hiệu hóa việc gửi thực tế của biểu mẫu, hoặc tạm dừng nó cho đến sau khi xác nhận thứ hai được kiểm tra?

Trả lời

1

Tôi nhớ có cùng một vấn đề này và không bao giờ tìm được cách tốt để làm điều này, vì như bạn đã nói, nó chỉ được xác nhận tiếp theo khi hành động "Xem xét" hoàn tất.

Những gì tôi đã làm, xem xét hành động mà nút đã mất một thời gian dài (và do đó biện minh cho việc tắt nút) là thực hiện hành động tạo công việc Delayed Job và sau đó để nó chạy không đồng bộ. Sau đó, nó khá dễ dàng để giả lập điều đó và làm cho nó ngủ trong một vài giây (hoặc những gì có bạn) để kiểm tra xem các nút bị vô hiệu hóa.

+0

Mã có thể làm gì cho công việc 'Trì hoãn việc làm 'trông giống như thế nào và nó sẽ đi đâu? Xin lỗi để hỏi một cái cơ bản, nhưng tôi khá mới để thử nghiệm capybara. – samjewell

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