【问题标题】:How to test user session within integration test in RSpec如何在 RSpec 的集成测试中测试用户会话
【发布时间】:2011-11-29 03:45:48
【问题描述】:

我是 BDD 的新手,我有这个需要用户会话的控制器,我如何在 RSpec 中测试它?谢谢!

【问题讨论】:

    标签: ruby-on-rails rspec tdd bdd


    【解决方案1】:

    您可以直接在session 变量中设置所需的密钥,该变量用于验证是否设置了用户会话。从RSpec documentation,您可以使用session 访问会话变量,就像在Rails 中一样。

    【讨论】:

      【解决方案2】:

      你是否使用一些 Authentication Plugin/Gem,例如 Devise、Restful_Authentication 或 Authlogic?

      通常它们带有某些 TestHelper-Methods,允许您在测试时进行某种身份验证。

      【讨论】:

      • 没有,因为一些自定义要求。
      【解决方案3】:

      不要。集成测试是 Cucumber 的工作,而不是 RSpec。

      【讨论】:

      • 错误!集成测试与您使用的工具完全无关。 (听说过 RSpec 场景吗?)。集成测试只是黑盒测试。期间!。
      • @Snuggs 自己错了! :) 某些工具比其他工具更适合集成测试;这是事实。当然,我听说过 RSpec 场景。它们存在,但对于这种类型的测试来说是一个糟糕的工具。 Cucumber 在适合此类测试的抽象级别上工作,因为它以用户术语描述用户操作。 RSpec 没有——它使用程序员术语(除非你在它上面重新实现了一个与 Cucumber 等效的东西——然后你还不如只使用 Cucumber)。为工作使用正确的工具很重要。我坚持我原来的说法。
      • 非常正确。也就是说,如果“利益相关者”实际上与开发人员坐在一起编写黄瓜规范。这种情况很少发生。说实话。为什么你认为黄瓜最近失去了这么多的动力。归根结底,它最终成为了一个梦想着利益相关者在他们的沙箱中与他们一起玩的开发人员。让一个人说正确的英语已经够难的了,更不用说写一个黄瓜规范了。这是我学到的。与您的测试方法无关。只是测试! CYA(覆盖您(自己的)A$$)
      • @Snuggs 不仅仅是利益相关者。 对于开发人员来说,用英语而不是 Ruby 来描述 UI 是有价值的。利益相关者的利益次要于开发人员从用户角度而非程序员角度考虑 UI 获得的清晰度。虽然有些测试总比没有测试好,但好的测试方法总比坏的好。所以我基本上不同意你在这里所说的一切。 :)
      • @Snuggs 另外,如果我对某个功能应该如何运行有疑问,我可以向客户展示一个 Cucumber 故事以供验证。不过,与我从看到我正在构建的 UI 的高级描述中受益(从用户的角度进行描述)相比,这并不是一个主要的好处。
      猜你喜欢
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多