rspecでprivateメソッドをテストする方法

2019年10月9日 Off By ryosuke-hujisawa

下記のような、文字列を二つ受け取って、間にセミコロンを結合して返すという関数があった時に、 private の下にあるから、rspeccontent_semicolon を呼び出せないとき

  private

  def content_semicolon(hoge, huga)
    hoge + ';' + huga
  end

こうすれば呼び出せる

  describe '#content_semicolon' do
    let(:instance) { クラス名.new }
    describe '呼び出すとき' do
      subject { instance.send(:content_semicolon, 'hello', 'world') }
      it 'セミコロンが結合された形で出てくること' do
        expect(subject).to eq 'hello;world'
      end
    end
  end