我將Twilio-Ruby集成到我的Ruby中,並創建了一些使用該gem發佈到API的方法。如何使用Minitest測試與Twilio API的集成
下面是我的TwilioMessage模型的方法在Rails的一個例子:
def message(recepient_number, message_body = INSTRUCTIONS, phone_number = '++18889990000')
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new account_sid, auth_token
@client.account.messages.create({
:from => phone_number,
:to => recepient_number,
:body => message_body
})
end
我試圖整合WebMock和Mocha我MINITEST套件,但我只是不知道在那裏與開始。
我試着用WebMock阻止傳出請求,並與磕碰它:
stub_request(
:post, "https://api.twilio.com/2010-04-01/Accounts/[ACCOUNT_ID]/Messages.json"
).to_return(status: 200)
在我的設置塊
。
然後,在我的測試中,我有:
test "send message" do
TwilioMessage.expects(:message).with('+18889990000').returns(Net::HTTPSuccess)
end
在我test_helper文件我有它設置爲只允許本地連接。
WebMock.disable_net_connect!(allow_localhost: true)
不過,我收到:
Minitest::Assertion: not all expectations were satisfied
unsatisfied expectations:
- expected exactly once, not yet invoked: TwilioMessage(id: integer, from_number: string, to_number: string, message_body: text, message_type: string, twilio_contact_id: integer, created_at: datetime, updated_at: datetime).send_message('+18889990000')
我試圖尋找通過規格爲Twilio,紅寶石的寶石,但還沒有任何運氣。
是否有人有他們如何測試或測試的例子和解釋?我正在試着圍住它。
從您的輸出中,似乎沒有調用send_message。一種方法是將WebMock設置爲允許連接到互聯網,編寫測試以便在調用Twilio API時通過。通過後,禁用網絡連接並對請求進行存根,以便您仍然有合格的測試但不會調用Twilio。 –