ruby - 使用 ruby​​ 执行半自动化测试

标签 ruby testing rspec

我正在编写一个与短信服务交互的开源 gem。我想测试交互,但它需要帐户信息和电话号码才能运行。它还需要反馈以确定是否正确发送了短信。这会导致两个问题:

  1. 我无法将帐户信息放入测试文件中,因为 gem 是开源的,任何人都可以访问它。

  2. 我需要运行测试的人员在脚本运行时向其提供信息(例如,检查电话以查看是否收到消息)。

有哪些可用的技术或库可以帮助解决这个问题?我目前正在使用 rspec 并使其提示输入参数(使用 gets),但目前它非常笨拙。我不可能是第一个使用 ruby​​ 的人遇到这个问题,我觉得我缺少一个 gem 或解决这个问题的东西。

最佳答案

使用模拟

您的测试具体是什么?给定的登录名/密码有效吗?可能不会。您很可能希望确保您的代码对 API 做出正确的 react 。因此,我建议 mock 。保存 API 调用的输出并使用模拟服务返回这些响应。然后测试。作为令人高兴的副作用,您的测试将更快、更不脆弱。

更多关于使用 RSpec 模拟的信息在这里: http://rspec.info/documentation/mocks/

关于ruby - 使用 ruby​​ 执行半自动化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215532/

相关文章:

ruby - 格子图案只为第一资本提供 "ITEM_LOGIN_REQUIRED"

java - 确定来自另一个 Java 应用程序的 Java 执行是否成功完成

reactjs - 为什么使用 findBy 时测试失败而使用 waitfor 时测试成功?

ruby - 为退出结束的错误情况编写Rspec测试

ruby-on-rails - 用于测试服务对象的 Rspec 建议

ruby - 为什么 split (' ' ) 试图变得(太)聪明?

ruby-on-rails - Ruby on Rails 如何获取表特定列的每一行?循环遍历行?

ruby - 为什么在尝试引用 Ruby 中的嵌套类时会出错?

testing - 要在 Canoe 中使用 TestModules 获得最佳输出,应遵循哪个正确的代码结构?

ruby-on-rails - ActiveRecord Relation where method matching on unique id returns object slightly diff then when traversing the array and matching on the same id