Rspec 规范中的随机“%2F”用于验证注释表单的存在性

Rspec 规范中的随机“%2F”用于验证注释表单的存在性,rspec,Rspec,我正在尝试为posts/show.html.erb视图编写规范,该视图是我为学习rspec而编写的一个简单应用程序。我现在有点困惑,想弄清楚额外的%2F是从哪里来的。有什么想法吗 我的规格 it "should render a form to add a comment" do render "posts/show.html.erb" response.should have_selector("form[method=post]", :action => post_

我正在尝试为posts/show.html.erb视图编写规范,该视图是我为学习rspec而编写的一个简单应用程序。我现在有点困惑,想弄清楚额外的%2F是从哪里来的。有什么想法吗

我的规格

  it "should render a form to add a comment" do
    render "posts/show.html.erb"
    response.should have_selector("form[method=post]", :action => post_comments_path([@post, @comment])) do |form|
      form.should have_selector("input[name='comment[author_name]']")
      form.should have_selector("textarea[name='comment[body]']")
      form.should have_selector("input[type=submit]")
    end
  end
带有额外%2F的规范输出

'posts/show.html.erb should render a form to add a comment' FAILED
expected following output to contain a <form[method=post] action='/posts/1001%2F/comments'/> tag:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<p>#[Post:0x1288146 @name="Post_1001"]
#[Post:0x1288146 @name="Post_1001"]
#[Post:0x1288146 @name="Post_1001"]


Comments<br></p>
<form action="/posts/1001/comments" class="new_comment" id="new_comment" method="post">

</form>
</body></html>

./spec/views/posts/show.html.erb_spec.rb:13:

您的帖子id中是否有尾随空格?

您的表单在erb中是什么样子的?对于某些在rails中运行良好的路由方案,Rspec的行为可能会异常

您正在使用什么版本的rspec?您最近更新过吗


你为什么要说明你的观点而不是仅仅使用cucumber?

我不这么认为。我的before:each块中不是正在设置post对象吗?它在对mock_模型的调用中没有指定特定的id?此外,我认为%2F是一条斜线…不是一个空格。人力资源管理。。。