如何停止 RSpec 测试运行以发送 Twilio 文本消息?

0 ruby rspec twilio

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

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

<Twilio::REST::Message @path=/2010-04-01/Accounts/AC818.....a16c/Messages/SM8....6cd>
Run Code Online (Sandbox Code Playgroud)

这是#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
Run Code Online (Sandbox Code Playgroud)

Nic*_*eys 5

没有看到您的规范,很难告诉您要更改什么,但是您需要存根/模拟该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
Run Code Online (Sandbox Code Playgroud)

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