Rspec控制器测试没有达到我的控制器动作

时间:2016-01-21 06:55:33

标签: ruby-on-rails ruby 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 方法,当我从我的网站手动测试时,它工作得很好,但它在rspec中失败了。以下是我的测试结果:

puts

当我在导入操作中添加$scope.SAP = 0语句时,包括在第一行,显然没有调用它们。除了断言失败之外,测试不会产生任何错误。类似地,当我查看test.log文件时,所有发生的事情都是我的测试用户的创建(并且发送了设备确认电子邮件),但似乎没有点击导入操作。测试服务器似乎认识到路线很好,但它实际上并没有执行动作。

我的测试配置有问题吗?

1 个答案:

答案 0 :(得分:4)

我一直在敲我的头几个小时,但我只想出来了。我需要confirm the user in my user factory。我想因为我在设计中启用了confirmable模块,并且用户未被确认,所以它默默地不允许我进行身份验证...

...如果rspec / rails / devise在这里产生了某种错误指向我的问题,那肯定会很好。

为了完整起见,我在撰写本文时添加了用于在FactoryGirl版本中确认用户的代码:

FactoryGirl.define do
  factory :confirmed_user, :parent => :user do
    after(:create) { |user| user.confirm! }
  end
end