我在测试我的类的初始化方法。它调用一个私有方法,并由于某种原因该方法失败。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
方法,它打印罚款。