有谁知道如何使用Rspec测试未经许可的参数的记录。
我尝试使用Rails.logger.should_receive():warn,:info,:error但我似乎无法捕获日志消息。
这是控制器测试:
describe Api::V2::ItemsController do
before do
@item = FactoryGirl.create(:item)
@user_id = @item.user_id
@invalid_user_id = @user_id + 1
end
it 'should not assign user_id' do
put :update, id: @item.id, item: { user_id: @invalid_user_id }
assigns(:item).user_id.should == @user_id
end
it 'should write "Unpermitted parameters: user_id" to log' do
Rails.logger.should_receive(:warn).with("Unpermitted parameters: user_id")
put :update, id: @item.id, item: { user_id: @invalid_user_id }
end
end
答案 0 :(得分:2)
你试过:debug吗?
expect(Rails.logger).to receive(:debug).with('...')
# or
# expect(ActionController::Base.logger).to receive(:debug).with('...')
要更改日志级别以发出警告,您可以在任何环境文件中尝试以下配置。
# config/environments/development.rb
# config/environments/production.rb
config.log_level = :warn