模拟用户输入到rspec的twilio语音
问题描述:
我想用Twilio模拟用户输入,所以我可以使用RSpec测试我们的语音系统。我可以创建一个新的电话,但official Twilio ruby gem似乎不允许我以用户输入数字的方式发送数字。模拟用户输入到rspec的twilio语音
@client = Twilio::REST::Client.new(account_sid, auth_token)
call = @client.calls.create({
from: '+1555550000',
to: '+15555559999',
url: 'www.example.com/twilio-endpoint'
})
这将返回一个呼叫对象,我希望你可以发送数字,但你不能。您可以在开始呼叫时通过传递:send_digits
键来发送数字,但一旦启动,您就失去了运气。我们需要与电话菜单等进行交互。
有一种叫做Twilio Test Kit的宝石可以用来使这个变得简单,但它在很久以前就被它的维护者抛弃了。人们在做什么来测试他们的Twilio语音应用程序?
更新:我已经加入这个原来的职位 - 但我期待写,可能看起来像
expect(call).to play_voice_recording('path/to/recording.wav')
call.dial(123)
expect(call).to say('confirmed successfully')
call.dial(0)
expect(call).to say('transferring to operator')
答
Twilio开发商在这里传道功能测试。
调用对象实际上是一个call resource in the REST API的包装。您可以更新call's state using the REST API,但只允许您将呼叫重定向到另一个返回TwiML的URL或取消或完成呼叫。
假设您的/twilio-endpoint
正在返回TwiML,其中包括您试图测试用户响应的<Gather>
。当用户在手机中输入数字以响应<Gather>
时,下一个操作是让Twilio将这些数字发送到<Gather>
的action
attribute。因此,为了测试接下来会发生什么,您需要发送POST请求到您用作action
属性的URL与entered digits set as the parameter Digits
。
让我知道这是否有帮助。
谢谢你的答案@philnash,只是给我的问题增加了一些细节。希望你可以迭代它!谢谢! – apollo701
我不知道最新的宝石,像Twilio Test Kit一样工作。如果你想像那样测试你的流量,那么我建议分叉它并及时更新它。 – philnash