在我的spec_helper.rb文件中,我专门将它设置为config.render_views但是我回来的response.body仍然是空的。这是我的基本规格
describe "#index" do
it "should list all rooms" do
get 'index'
stub(Person).all
end
it "responds with 200 response code" do
response.should be_ok
end
it "renders the index template" do
pp response.body
response.should render_template("people/index")
end
end
还有什么可以缩短这种行为吗?我通过浏览器时很好。我在Rspec 2.5.0上
你尝试过吗? render_views
在您的控制器spec文件中?这对我行得通。
我注意到的另一件事是你只在测试用例中访问索引页面 - 第一个是准确的。其余的将返回空的html内容,因为没有响应。
这就是我将如何实现它。但如果你已经有了 config.render_views
在* spec_helper.rb *文件中,如果有效,你可以不用 render_views
在控制器规范中。
describe MyController
render_views
before :each do
get :index
end
describe "#index" do
it "should list all rooms" do
stub(Person).all
end
it "responds with 200 response code" do
response.should be_ok
end
it "renders the index template" do
pp response.body
response.should render_template("people/index")
end
end
end
编辑:
这里的微妙变化是 before
我称之为blobk get :index
为每一个人 it
块。
你尝试过吗? render_views
在您的控制器spec文件中?这对我行得通。
我注意到的另一件事是你只在测试用例中访问索引页面 - 第一个是准确的。其余的将返回空的html内容,因为没有响应。
这就是我将如何实现它。但如果你已经有了 config.render_views
在* spec_helper.rb *文件中,如果有效,你可以不用 render_views
在控制器规范中。
describe MyController
render_views
before :each do
get :index
end
describe "#index" do
it "should list all rooms" do
stub(Person).all
end
it "responds with 200 response code" do
response.should be_ok
end
it "renders the index template" do
pp response.body
response.should render_template("people/index")
end
end
end
编辑:
这里的微妙变化是 before
我称之为blobk get :index
为每一个人 it
块。
我有同样的问题。
解决方案是指定请求的格式。
例如:
get :some_action, some_param: 12121, format: 'json'
这已从RSpec 1更改为RSpec 2.查看规格现在使用 rendered
代替 response
:
rendered.should =~ /some text/
更多信息 在github上发布说明。