2010-07-23 16 views
7

Tôi hiện đang cố gắng thiết lập thử nghiệm tích hợp/chấp nhận cho một ứng dụng đường ray mới 3 với dưa leo và capybara. (Tôi ban đầu dự định sử dụng webrat, nhưng có vẻ như nó không hỗ trợ đường ray 3, vì vậy tôi đã kết thúc với Capybara)Làm thế nào để thực hiện theo một chuyển hướng sau khi click_link/nút với dưa chuột và capybara trong đường ray?

Tôi đang cố gắng để có được một công việc kiểm tra đăng nhập cơ bản:

Feature: Login user 
    In order to access the non-public parts of the site, 
    as a user, 
    I want to login to the site 

Scenario: login with valid credentials 
    Given I am on the login page 
    When I fill in "Email" with "[email protected]" 
    And I fill in "Password" with "pass" 
    And I press "Login" 
    Then I should be on the users home page 
    And I should see "Login successful" 

Các vấn đề bây giờ là, biểu mẫu đăng nhập sẽ gửi tôi đến /user_session sau đó chuyển hướng tôi đến trang chủ của người dùng /home. Dưa chuột không theo chuyển hướng gây ra dòng Then I should be on the users home page bị lỗi.

Làm thế nào tôi có thể yêu cầu dưa chuột/capybara thực hiện theo chuyển hướng để tôi ở đúng trang sau khi tôi nhấn một nút theo một liên kết?

Có vẻ như phương pháp follow_redirect! trong trình điều khiển rack_test mà tôi đang sử dụng, nhưng nó là riêng tư và tôi không có đầu mối nào về cách gọi chức năng đó.

cảm ơn trước,
Simon

Trả lời

14

Capybara tự động theo chuyển hướng. Một cái gì đó khác bị hỏng.

+0

Đó là câu trả lời mà tôi sợ nhất, nhưng tôi cũng nghe nói rằng từ một nguồn khác. Cần điều tra ... –

+0

d'oh! Đã xảy ra sự cố với dữ liệu thử nghiệm của tôi. Không có gì lạ khi nó không hoạt động nếu người dùng không tồn tại trong db. Cảm ơn đã giúp đỡ! –

+3

Đó là Capybara theo sau chuyển hướng. Rack :: Kiểm tra chỉ sau chuyển hướng nếu bạn gọi 'follow_redirect! ': http://rdoc.info/github/brynary/rack-test/master/Rack/Test/Session – Timo

1

Cái gì mà có thể làm việc được chuyển đổi thứ tự của các báo cáo:

Then I should see "Login successful" 
And I should be on the users home page 

Sau đó kiểm tra cho trang hiện hành sẽ xảy ra sau khi kiểm cho các nội dung trang . Thử nghiệm dưa chuột đòi hỏi rất nhiều gỡ lỗi, chúc may mắn!

6

Thêm này thành những bước bạn:

When /^I dump.* the response$/ do 
    puts body 
end 

Sau đó, khi kiểm tra bạn đang hỏng, bạn có thể thêm "Và tôi đổ phản ứng" để bước của bạn và xem nơi nó đang diễn ra với sự chuyển hướng hoặc bất cứ điều gì.

+1

mẹo nhỏ, tiết kiệm rất nhiều công việc gỡ lỗi, thx – astropanic

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