如何停止RSpec测试运行发送Twilio短信?

时间:2015-03-29 22:07:13

标签: ruby rspec twilio

如何防止Rspec在运行测试时触发短信?我只希望通过IRB发送短信。

这是从运行send_sms方法的测试中获得的消息:

<Twilio::REST::Message @path=/2010-04-01/Accounts/AC818.....a16c/Messages/SM8....6cd>

以下是#send_sms方法:

def send_sms
  @account_sid = 'AC818...16c'
  @auth_token  = 'c128...431'
  @from_number = '+44...18'
  @to_number   = '+44...31'
  @client      = Twilio::REST::Client.new(@account_sid, @auth_token)
  @account     = @client.account
  @sms         = @account.messages.create(
    from: @from_number,
    to:   @to_number,
    body: "Thank you! Your order was placed and will be delivered."
  )
  p @sms
end

1 个答案:

答案 0 :(得分:4)

如果没有看到您的规范,很难告诉您要更改的内容,但是您需要存根/模拟send_sms方法,因此会调用假方法。

rspec-mocks宝石就是这些宝石的所在地,文档就在那个链接上。

基本上,你会做类似的事情:

let(:something) { no_clue_what_you_have }

before do
  expect(something).to receive(:send_sms)
end

it 'sends an SMS message' do
  something.again_we_have_no_idea_what_you_are_doing
end

在寻求帮助时,最好提供尽可能多的代码!但希望这能指出你正确的方向。