我正在编写一个与短信服务交互的开源 gem。我想测试交互,但它需要帐户信息和电话号码才能运行。它还需要反馈以确定是否正确发送了短信。这会导致两个问题:
我无法将帐户信息放入测试文件中,因为 gem 是开源的,任何人都可以访问它。
我需要运行测试的人员在脚本运行时向其提供信息(例如,检查电话以查看是否收到消息)。
有哪些可用的技术或库可以帮助解决这个问题?我目前正在使用 rspec 并使其提示输入参数(使用 gets),但目前它非常笨拙。我不可能是第一个使用 ruby 的人遇到这个问题,我觉得我缺少一个 gem 或解决这个问题的东西。
最佳答案
使用模拟
您的测试具体是什么?给定的登录名/密码有效吗?可能不会。您很可能希望确保您的代码对 API 做出正确的 react 。因此,我建议 mock 。保存 API 调用的输出并使用模拟服务返回这些响应。然后测试。作为令人高兴的副作用,您的测试将更快、更不脆弱。
更多关于使用 RSpec 模拟的信息在这里: http://rspec.info/documentation/mocks/
关于ruby - 使用 ruby 执行半自动化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215532/