我正在尝试在我的应用程序上使用 Rspec-rails,但是当我尝试验证我的请求的响应时失败了。
这是我的代码:
# app/controllers/user_controller.rb
# GET api/users/:id
def show
@user = User.find(:id)
respond_to do |format|
format.json {render template: "/api/users/detailed"}
end
end
...
# spec/controllers/api/users_controller_spec.rb
require "spec_helper"
describe Api::UsersController do
include Devise::TestHelpers
describe "GET #show" do
user = FactoryGirl.build(:user)
it "assigns the requested user to @user" do
get :show, :format => 'json', :id => user.id
assigns(:user).should eq(@user)
end
it "renders the #detailed view" do
get :show, :format => 'json', :id => user.id
response.should be_respond_to("api/users/detailed")
#expect(response).to render_template("api/users/detailed")
#expect(subject).to render_template("/api/users/detailed")
#render(:template => "/api/users/detailed.json.rabl", :format => "json")
#response.should render_template("/api/users/detailed.json.rabl")
end
end
我评论了我测试过的部分内容。
我只是想确保我的控制器respond_to
有一个名为"api/users/detailed"
.
大多数情况下,我有以下错误:
expecting <"api/users/detailed"> but rendering with <"">
我很确定我的请求调用了控制器,因为第一个描述"assigns the requested user to @user"
有效。