본문 바로가기
Ruby

rsepc mock 메소드 내부 확인

by yunexus 2023. 10. 23.
describe '#test_target_method' do
    subject do
      described_class.new.test_target_method
    end
    
    before do
      travel_to('2020-01-01 00:00:00')
      ...
    end

    shared_examples '공통 테스트' do |sql|
      it '확인 내용' do
        allow(모듈::클래스).to receive(:new).and_return(test_class)
        test_class.class.alias_method :original_method_name, :method_name
        allow(test_class).to receive(:method_name) do |relation|
          result = test_class.original_method_name(relation)
          expect(result.to_sql).to eq(sql)
          result
        end
        subject
      end
    end
    
    let(:test_class) { 모듈::클래스.new }
    
    context '테스트 조건' do
      include_examples '공통 테스트', 'SELECT * FROM ...'
    end
end

'Ruby' 카테고리의 다른 글

unicode normalizeのform  (0) 2024.06.10
rails ActiveRecord 메모리, 성능 개선  (0) 2022.12.30