我正在使用Rails 3.0.1,RSpec-Rails 2.0.1和Webrat 0.7.1。我有以下测试:
describe PagesController do
describe "GET 'main'" do
it "should have the right title" do
get 'main'
response.should have_selector("title", :content => "My title")
end
end
end
页面的HTML #main检出:它包含我的标题。当我运行rspec时,它会让我在此测试中失败,并说它希望在以下行中找到标记:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
由于这不是存储在#main页面的文件,我认为rspec由于某种原因加载了错误的页面。我该如何解决这个问题?或者,如果没有通用的解决方案,我怎样才能让rspec告诉我它正在尝试加载哪个页面,这样我就可以试着找出它为什么会转到其他页面呢?感谢。
答案 0 :(得分:1)
您需要告诉RSpec渲染视图:
describe PagesController do
render_views # Add this line to tell RSpec to render the views
describe "GET 'main'" do
.
.
end
答案 1 :(得分:0)
这是发布log / test.log的更好方法:
Processing by PagesController#main as HTML
Rendered pages/main.html.erb within layouts/application (0.4ms)
Completed 200 OK in 5ms (Views: 5.1ms | ActiveRecord: 0.0ms)
Processing by PagesController#main as HTML
Completed 200 OK in 1ms (Views: 0.9ms | ActiveRecord: 0.0ms)
在我看来,第一个会导致页面呈现 - 第二个调用是什么?