我在測試我的類的初始化方法。它調用一個私有方法,並由於某種原因該方法失敗。Rspec私有方法無法訪問類實例變量?
類(簡化爲簡潔的代碼):
class MyClass
@configs = {}
def initialize(configs)
@configs = configs
check_configs
create_client
end
private
def check_configs
if @configs['some_token'].nil?
Rails.logger.git_loader.error('log message')
raise AnError
end
end
end
測試:
describe '#initialize' do
let(:config) { my_token: '123-FakeToken' }
let(:loader) { described_class.new(config) }
context 'when initialized with a set of configs' do
it { expect(loader.instance_variable_get(:@configs)).to eq(configs)}
end
end
當我把一個puts
的nil?
檢查之前,令牌打印出什麼,但在我的耙子任務打電話initialize
方法,它打印罰款。