是否可以使用带有Rails的RSpec来测试给定布局的使用,例如,我想要执行以下操作的匹配器:
response.should use_layout('my_layout_name')
我在Googling时找到了use_layout匹配器,但由于响应或 Controller 似乎都没有匹配器正在寻找的layout属性,因此它无法正常工作。
最佳答案
我找到了一个可以做到这一点的how to write a use_layout
matcher示例。这是链接消失的代码:
# in spec_helper.rb
class UseLayout
def initialize(expected)
@expected = 'layouts/' + expected
end
def matches?(controller)
@actual = controller.layout
#@actual.equal?(@expected)
@actual == @expected
end
def failure_message
return "use_layout expected #{@expected.inspect}, got #
{@actual.inspect}", @expected, @actual
end
def negeative_failure_message
return "use_layout expected #{@expected.inspect} not to equal #
{@actual.inspect}", @expected, @actual
end
end
def use_layout(expected)
UseLayout.new(expected)
end
# in controller spec
response.should use_layout("application")
关于ruby-on-rails - 使用RSpec和Rails测试给定布局的渲染,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/109284/