让我说我的Rails初始化程序中有一个帮助方法,这使得它在我的应用程序中无处不在
# config/initializers/foo.rb
def foo
"FOO"
end
然后我在渲染视图时使用它
<div class="container">
<%= t("some.translation", link: foo) %>
</div>
我想在功能规范中隐藏该值(而不是查看规范)。这意味着我想拥有以下其中一项 -
expect_any_instance_of(<some class instance>).to receive(:foo) { "BAR" }
expect(<some class>).to receive(:foo) { "BAR" }
我需要填写的<some_class>
或实例是什么?什么类充当视图方法的接收者?
一般情况下,我如何找到任意方法的收件人,以便以类似的方式将其删除?
答案 0 :(得分:1)
答案 1 :(得分:0)
听起来你的foo
方法特别是一个视图助手方法。如果是这种情况,那么该方法不属于初始化程序。初始化程序应该包含应该在应用程序启动时运行的代码(或用于猴子修补宝石的代码)。
有助于视图层的方法应列在app/helpers/application_helper
(或同一目录中的新自定义文件)中。这就是帮助文件的用途 - 视图级方法。
那时,你要做的就是找出一个帮助方法。 This SO Question以及this one可以为您提供帮助。