2009-08-03 13 views
0

Я пытаюсь написать спецификации для представления posts/show.html.erb простого приложения, которое я собираю, чтобы узнать rspec. Я немного в тупике, пытаясь выяснить, откуда приходит дополнительный «% 2F». Есть идеи?Случайный «% 2F» в spec для проверки существования формы комментария

Моя спекуляция ...

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: 

ответ

0

Как выглядит ваш form_for в erb? Rspec может вести себя странно для определенных сценариев маршрутизации, которые отлично работают в рельсах.

Какую версию rspec вы используете (и обновили ли вы недавно)?

Почему вы определяете свои взгляды, а не просто используете огурец?

0

ли ваш пост-идентификатор как-то трейлинг пространство в нем?

+0

Я так не думаю. Не устанавливается ли постповторный объект в моем блоке before (: each), который не указывает конкретный идентификатор в вызове mock_model? Кроме того, я думаю, что% 2F - это косая черта ... не пространство. Hrm ... –

+0

О, вы правы относительно% 2F. –