我正在用 cucumber 试用 capybara 以获得更好的 javascript 测试覆盖率。我有很多步骤来检查或使用 Rails 集成测试助手中的东西,例如:
assigns(:current_user).should_not be_nil
无论我如何调用 assigns
,即使我说类似 p assigns
的内容,它也会出错:
undefined method `template' for nil:NilClass (NoMethodError)
所以,看来我不能再那样做了。除了自省(introspection) Controller 中正在发生的事情之外,还有其他方法吗?或者至少可以通过某种方式运行这些步骤,以便我返回集成测试内容?
最佳答案
不幸的是没有。 Capybara 测试机架应用程序,除了通过标准机架接口(interface)(即发出 HTTP 请求)之外,无法与机架应用程序内部的内容进行通信。机架应用程序内部发生的任何事情对于 Capybara 都是不可见的。
关于ruby-on-rails - capybara cucumber 中 assigns() 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2932363/