是否可以使用带有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/

10-12 19:52