嘿所有, 我无法在我的ruby on rails视图上测试表单元素的存在。我正在使用rspec和have_selector进行测试。
这是我的测试代码:
it "should always have like button for root entity" do
get :index
@entities[0..3].each do |entity|
response.should have_selector("form",
:method => "post", :action => "like/#{entity[:id]}") do |form|
form.should have_selector("input", :value => "Like")
end
end
end
这是我的视图特定实体的输出:
<th>
<form method="post" action="/like/1" class="button_to">
<div>
<input type="submit" value="Like" /><input name="authenticity_token" type="hidden" value="WEJPdFzphPFz+ld6BO8c/sMlhdfm+2Trp+3n0J8H5Cs=" />
</div>
</form>
</th>
这是我的rspec错误:
1)EntitiesController GET'index' 非签名用户存在实体 应该总是有像按钮 根实体 失败/错误:form.should have_selector(“input”,:value =&gt; “喜欢”) 预期在输出之后包含&lt;输入值='喜欢'/&gt;标签
如果我注释掉“form.should have_selector(”input“,:value =&gt;”Like“)”那么测试代码为:
it "should always have like button for root entity" do
get :index
@entities[0..3].each do |entity|
response.should have_selector("form",
:method => "post", :action => "like/#{entity[:id]}") do |form|
#form.should have_selector("input", :value => "Like")
end
end
end
我的rspec错误是:
1)EntitiesController GET'index' 非签名用户存在实体 应该总是有像按钮 根实体 失败/错误:response.should have_selector(“form”, 预期在输出之后包含&lt; form method ='post' 行动= '像/ 2127'/&GT;标记:
&LT; form method =“post” 行动= “/像/ 2127” 类= “button_to” &GT;&LT; DIV&GT;&LT;输入 类型=“提交” 值= “喜欢” &GT;
(只有相关部分是c / ped)
在表单元素方面,我似乎遇到了很多关于have_selector的问题。有没有更好的选择,还是我错过了一些明显的东西?
谢谢!
答案 0 :(得分:0)
您的表单的操作是
action="/like/1"
但您正在搜索
action="like/1"
即。你错过了一个斜线。