rspec-context-private gem 을 사용하여 컨텍스트 내에서 비공개 메서드를 일시적으로 공개합니다.
gem 'rspec-context-private'
프로젝트에 공유 컨텍스트를 추가하여 작동합니다.
RSpec.shared_context 'private', private: true do
before :all do
described_class.class_eval do
@original_private_instance_methods = private_instance_methods
public *@original_private_instance_methods
end
end
after :all do
described_class.class_eval do
private *@original_private_instance_methods
end
end
end
그런 다음 :private
메타 데이터로 describe
블록에 전달하면 해당 컨텍스트 내에서 private 메서드가 공개됩니다.
describe AccountController, :private do
it 'can test private methods' do
expect{subject.current_account}.not_to raise_error
end
end