ruby-on-rails-3 - 如何测试需要javascript才能完成的场景?

标签 ruby-on-rails-3 testing integration-testing rspec2 factory-bot

我正在处理的一个项目从第 3 方服务获取数据并将其与我的应用程序的特定信息一起缓存在本地。

我的环境:

  • 我针对服务的搜索 API 提供搜索机制。
  • 当用户第一次浏览商品页面时,我的服务器从服务中获取信息并存储
  • 在后续请求中,浏览器只从我的服务器请求信息

.. 但是.. 我希望来自第 3 方服务的信息保持最新。

我的计划(欢迎反馈!)

  • 在页面加载后的后续请求中,一些 JS 将 ping 第三方服务以检查更新
  • 如果该项目已更新,则将更新推送到我的复制服务器端

如何测试这个?

当我编写 Controller 规范时,我认为页面的 javascript 没有被执行(从服务中获取更新后的项目)

我在尝试描述这一点时遇到了很多麻烦,因此图表可能会有所帮助。

enter image description here

我使用的技术:Rails/RSpec/Factory Girl/JQuery

最佳答案

让我们跳出框框来解决这个问题。

当页面被请求时,你能从后端访问第 3 方服务吗?然后删除对 JavaScript 的依赖。

还有一些其他方法比这更好,比如将“更新项目信息”操作放入队列中,然后在后端后台处理它。这将使第 3 方服务不会减慢您的网站速度。

关于ruby-on-rails-3 - 如何测试需要javascript才能完成的场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7577716/

相关文章:

web-services - 如何使用 UFT 通过一个脚本测试多个 Web 服务?

testing - Rspec Controller 测试挂

unit-testing - 有没有办法为 libGDX 应用程序创建集成测试?

spring-mvc - 使用对象列表作为请求参数的 MockMvc 集成测试

ruby-on-rails - Rails 开发环境中无法加载图像

ruby-on-rails - has_secure_password 中的可选密码确认

unit-testing - 用于 BDD 单元测试的 cucumber.js?

java - 使用 OpenClover、Java 和 Gradle 集成测试代码覆盖率报告

ruby-on-rails - Rails 如何决定使用 PUT 或 POST 方法渲染表单?

ruby-on-rails - 使用 thin 在 Rails 3 应用程序中指定环境