2012-12-14 17 views
5

Tôi đã sử dụng capybara một thời gian, nhưng tôi mới làm phép thuật. Tôi có một vấn đề rất kỳ lạ, theo đó nếu tôi chạy các thông số kỹ thuật mà không có Capybara's: js => true chức năng tôi có thể đăng nhập tốt, nhưng nếu tôi cố gắng chỉ định: js => true trên spec, tên người dùng/mật khẩu không thể được tìm thấy.Sorcery/Capybara: Không thể đăng nhập bằng: js => true

Đây là vĩ mô xác thực:

module AuthenticationMacros 
    def sign_in 
    user = FactoryGirl.create(:user) 
    user.activate! 
    visit new_sessions_path 
    fill_in 'Email Address', :with => user.email 
    fill_in 'Password', :with => 'foobar' 
    click_button 'Sign In' 
    user 
    end 
end 

nào được gọi là trong thông số kỹ thuật như thế này:

feature "project setup" do 
    include AuthenticationMacros 

    background do 
    sign_in 
    end 

    scenario "creating a project" do 
    "my spec here" 
    end 

Đoạn mã trên hoạt động tốt. Tuy nhiên, nếu tôi thay đổi spec kịch bản từ (trong trường hợp này)

scenario "adding questions to a project" do 

để

scenario "adding questions to a project", :js => true do 

đăng nhập không thành công với một 'username mật khẩu không chính xác /' kết hợp. Theo nghĩa đen, thay đổi duy nhất là: js => true. Tôi đang sử dụng trình điều khiển javascript capybara mặc định. (Tải lên Firefox)

Bất kỳ ý tưởng nào có thể xảy ra ở đây? Tôi hoàn toàn bối rối. Tôi đang sử dụng Capybara 2.0.1, Sorcery 0.7.13. Không có javascript trên trang đăng nhập và save_and_open_page trước khi nhấp vào 'đăng nhập' xác nhận rằng các chi tiết chính xác được nhập vào trường tên người dùng/mật khẩu. Bất kỳ đề xuất thực sự đánh giá cao - Tôi đang thua lỗ.

Trả lời

8

Trình điều khiển javascript capybara mặc định là Selen theo tài liệu capybara. Vì Selenium thực hiện trong một chuỗi riêng biệt, bạn phải vô hiệu hóa các đồ thị giao dịch hoặc chuỗi Selenium sẽ không có quyền truy cập vào dữ liệu bạn tạo trong cơ sở dữ liệu. Xem https://github.com/jnicklas/capybara#using-capybara-with-testunit. Phần đó có những ghi chú về việc vô hiệu hóa các đồ đạc giao dịch.

+0

Ach! Tất nhiên! Cảm ơn nhiều, nhiều đánh giá cao. – PlankTon

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