Roc*_*uy3 4 ruby rspec ruby-on-rails
我import向控制器添加了一个方法,当我从我的网站手动测试它时它工作得很好,但它在 rspec 中失败。这是我的测试的样子:
require 'spec_helper'
describe PropertiesController do
let!(:user) { FactoryGirl.create(:user) }
before :each do
sign_in user
end
describe "should upload user properties" do
before do
post :import, spreadsheet: fixture_file_upload("/files/property_upload_template.xlsx")
end
it "should have created records" do
expect(Property.count).to eq 3
# Some other assertions
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我在导入操作中添加puts语句(包括第一行)时,显然没有调用它们。除了断言失败之外,测试不会生成任何错误。同样,当我查看 test.log 文件时,所发生的只是创建我的测试用户(并且发送了一封设计确认电子邮件),但似乎并没有执行导入操作。测试服务器似乎可以很好地识别该路由,但它实际上并未执行该操作。
我的测试配置有问题吗?
我已经敲了好几个小时的头了,但我刚刚想通了。我需要在我的用户工厂中确认用户。我想因为我confirmable在设计中启用了模块,并且用户没有得到确认,所以它默默地不允许我进行身份验证......
...如果 rspec/rails/devise 生成某种错误来指出我这里的问题,那就太好了。
为了完整起见,我在撰写本文时的 FactoryGirl 版本中添加了用于确认用户的代码:
FactoryGirl.define do
factory :confirmed_user, :parent => :user do
after(:create) { |user| user.confirm! }
end
end
Run Code Online (Sandbox Code Playgroud)