rspec 3.7
allow receiveで監視対象をしっかり指定出来ていなかったり、地味にハマったので基本的な形を忘れないように。。。
describe 'Authenticate' do
context 'twitter user' do
let!(:user) { TwitterUser.new }
before do
allow(FacebookLoginService).to receive(:login)
allow(TwitterLoginService).to receive(:login)
AuthenticateService.execute(user)
end
it 'twitter login called once' do
expect(TwitterLoginService).to have_received(:login).once # 1回呼ばれること
end
it 'facebook login is not called' do
expect(FacebookLoginService).not_to have_received(:login) # 呼ばれないこと
end
end
end
参考