Ruby on rails RSpec以不正确的转义方式渲染视图
我正在对Rails视图进行单元测试,该视图使用表单生成器来概括类似的代码(与AngularJS应用程序一起使用)。视图在浏览器中正确呈现时,RSpec呈现属性字符串中某些字符的视图时,转义错误:Ruby on rails RSpec以不正确的转义方式渲染视图,ruby-on-rails,ruby,angularjs,rspec,Ruby On Rails,Ruby,Angularjs,Rspec,我正在对Rails视图进行单元测试,该视图使用表单生成器来概括类似的代码(与AngularJS应用程序一起使用)。视图在浏览器中正确呈现时,RSpec呈现属性字符串中某些字符的视图时,转义错误:ng:{if:“model.val
ng:{if:“model.val<1}”
,例如,呈现为ng if=“model.val 1”
复制步骤:
表单生成器有一个方法(简化):
当我没有使用表单生成器时,这并没有发生。为什么RSpec在表单生成器中呈现视图的方式不正确?我可以做些什么来解决它?您是否尝试过在before块中使用而不是呈现?@yez我得到了未定义的方法错误。。。根据链接,
render\u views
用于控制器规格,而上面的是视图规格,虽然render\u views
不适用于您,但我认为问题肯定与渲染有关。我会检查文件类型,确保渲染时认为是html文件而不是其他文件;这是一个视图规范。。。
def if_step_at_or_before(step, &block)
content_tag :div, ng: {if: "myModel.step <= #{step}"}, &block
end
<%= f.if_step_at_or_before 3 do %>
…
<% end %>
<div ng-if="myModel.step <= 3">
…
</div>
before { render }
it "doesn't render with <" do
assert_select "[ng-if=?]", "myModel.step <= 3", 0
end
it "renders with <" do
assert_select "[ng-if=?]", "myModel.step <= 3", 1
end
<div ng-if="myModel.step <= 3">
…
</div>