ruby-on-rails – 如何在Rails 3下的rspec测试中访问控制器常量

ruby-on-rails – 如何在Rails 3下的rspec测试中访问控制器常量,第1张

概述使用Rails 3.2我在子目录中有一个控制器(例如/controllers/data_feeds/acme_feed_controller.rb) 该控制器有一些常数如下 class DataFeeds::AcmeFeedController < ApplicationController MY_CONSTANT = "hi def do_something do ... 使用Rails 3.2我在子目录中有一个控制器(例如/controllers/data_Feeds/acme_Feed_controller.rb)

该控制器有一些常数如下

class datafeeds::AcmeFeedController < ApplicationController  MY_CONSTANT = "hi  def do_something do    ...  endend

在我的rspec控制器规范(在/spec/controllers/data_Feeds/acme_Feed_controller_spec.rb中)我想访问常量,以下是我尝试过的两种方法(两种方式都在下面的代码中注释掉)

describe AcmeFeedController do  if "tests something" do    #c = AcmeFeedController.MY_CONSTANT    #c = datafeeds::AcmeFeedController.MY_CONSTANT  endend

我显然不了解规范测试的运行范围.我需要做什么,同样重要的原因(即范围内发生了什么).

谢谢你的帮助.

解决方法 常量不能用点语法引用,因此datafeeds :: AcmeFeedController.MY_CONSTANT永远不会在任何上下文中工作.您需要使用::来引用常量:datafeeds :: AcmeFeedController :: MY_CONSTANT.

请注意,这是一个ruby问题,与RSpec无关.当你遇到这样的问题时,我建议你弄清楚如何用纯ruby(例如在IRB中)做这件事,然后再担心它在RSpec中是如何工作的(无论如何它通常是相同的).

如果你想知道常量如何在ruby中工作,我推荐你看this talk详细解释它们.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何在Rails 3下的rspec测试中访问控制器常量全部内容,希望文章能够帮你解决ruby-on-rails – 如何在Rails 3下的rspec测试中访问控制器常量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1255171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存