Tôi có bộ điều khiển Bài đăng và tôi vừa cài đặt Devise để thêm một số xác thực nhanh chóng và dễ dàng. Trước khi cài đặt Devise, tôi đã tạo một số thử nghiệm cho hành động 'mới' của bộ điều khiển Bài viết của mình. Sau khi cài đặt Devise, các thử nghiệm của tôi không thành công cho đến khi tôi thêm vào sốRspec, Devise, Factory girl - cách đăng nhập người dùng Nhà máy thông qua kiểm tra bộ điều khiển Rspec?
config.include Devise::TestHelpers, :type => :controller
dòng vào tệp spec_helper.rb của mình.
Tôi cũng có dòng
before_filter :authenticate_user!, :except => [:show, :index]
trong PostsController tôi.
Bây giờ khi tôi chạy thử nghiệm của tôi, tất cả họ đều vượt qua, ngoại trừ những 2:
it "should be successful" do
get :new
response.should be_success
end
it "should have the right title" do
get :new
response.should have_selector('title', :content => @base_title + " | New post")
end
Tôi đang sử dụng máy cô gái là tốt. Lỗi này là do tham số before_filter ngoại trừ. Tôi cần để có thể đăng nhập vào người dùng trong rspec với một người sử dụng nhà máy. Làm cách nào để tôi ký tên người dùng Nhà máy trong từ trong kiểm tra bộ điều khiển Rspec? Làm cách nào để xác định người dùng Nhà máy?
Tôi đã cố gắng này trong factories.rb tôi:
Factory.define :user do |user|
user.name "Test User"
user.email "[email protected]"
user.password "password"
user.password_confirmation "password"
end
Nhưng sau đó tôi nhận được lỗi:
NoMethodError:
undefined method `password_salt=' for #<User:0x00000103cac958>
Bất kỳ trợ giúp sẽ được nhiều đánh giá cao. Cảm ơn.
ahhhh hoàn toàn quên di chuyển DB thử nghiệm ... bây giờ tôi nhận được: 'Thất bại/Lỗi: @user = tạo! (Nhà máy (: người dùng)) ActiveRecord :: RecordInvalid: Xác thực không thành công: Email có thể ' không được để trống, Mật khẩu không được để trống ' – Jack
Mã nào đưa ra lỗi đó? (Thông báo lỗi phải có tên tệp và số dòng.) –
Đó là một thử nghiệm trong Trình điều khiển Bài đăng của tôi trước (: mỗi) làm @user = create! (Nhà máy (: người dùng)) test_sign_in (@user) end' – Jack