Заглушка не работает, потому что эти заглушки не связаны с реальным кодом.Вместо этого это должно быть так:
require 'spec_helper'
describe Person do
describe "#initialize" do
let(:logger_mock) { double("Rails.logger").as_null_object }
it "logs a message" do
Rails.stub(:logger).and_return(logger_mock)
logger_mock.should_receive(:debug)
Person.new "dummy"
end
end
end
Для OP: если вы просто хотите установить ожидание при ведении журнала, вам вообще не нужно заглушать весь класс средства ведения журнала.Вы можете просто сделать
Rails.logger.should_receive(:debug)
Бонус: если вы просто хотите заглушки, чтобы не происходила регистрация, сделайте это:
Rails.logger.stub(:add){ true }