Tôi cần phải đưa ra phản hồi của phương thức current_user
trong thông số yêu cầu Rspec/capybara. Phương thức được định nghĩa trong ApplicationController
và đang sử dụng helper_method. Phương thức này chỉ cần trả về một id người dùng. Trong thử nghiệm, tôi muốn phương thức này trả về cùng một id người dùng mỗi lần.Làm thế nào để khai phương pháp ApplicationController theo yêu cầu spec
Ngoài ra, tôi có thể khắc phục sự cố của mình bằng cách đặt session[:user_id]
trong thông số kỹ thuật (đó là những gì current_user
trả về) ... nhưng điều đó dường như không hoạt động.
Có thể thực hiện một trong hai tùy chọn này không?
Chỉnh sửa:
Đây là những gì tôi có (nó không hoạt động. Nó chỉ chạy phương pháp current_user bình thường).
require 'spec_helper'
describe "Login" do
before(:each) do
ApplicationController.stub(:current_user).and_return(User.first)
end
it "logs in" do
visit '/'
page.should have_content("Hey there user!")
end
end
Cũng không làm việc:
require 'spec_helper'
describe "Login" do
before(:each) do
@mock_controller = mock("ApplicationController")
@mock_controller.stub(:current_user).and_return(User.first)
end
it "logs in" do
visit '/'
page.should have_content("Hey there user!")
end
end
là 'current_user' một phương pháp lớp học? Tôi đoán không. Vì vậy, thay vì 'ApplicationController.stub (: current_user)' bạn có thể cần 'ApplicationController.any_instance.stub (: current_user)'. – skalee