我有一个组控制器与方法def inbox.
如何创建验证JSON响应的rspec测试?
如果用户是一个组成员,然后收件箱返回一个JSON对象。
如果用户不是会员,那么收件箱应重定向感谢CanCan权限。
如何编写rspec来测试这两个用例?
电流规格:
require 'spec_helper'
describe GroupsController do
include Devise::TestHelpers
before (:each) do
@user1 = Factory.create(:user)
@user1.confirm!
sign_in @user1
@group = Factory(:group)
@permission_user_1 = Factory.create(:permission, :user => @user1, :creator_id => @user1.id, :group => @group)
end
describe "GET inbox" do
it "should be successful" do
get inbox_group_path(@group.id), :format => :json
response.should be_success
end
end
end
路线:
inbox_group GET /groups/:id/inbox(.:format) {:controller=>"groups", :action=>"inbox"}
routes文件:
resources :groups do
member do
get 'vcard', 'inbox'
end
....
end
谢谢试过,但我得到一个错误:“失败/错误:得到:收件箱,:格式=>:json ActionController :: RoutingError: 没有路由匹配{:controller =>”groups“,:format => :json,:action =>“inbox”} #./controllers/groups_controller_spec.rb:19 “考虑到rake路由会产生一个奇怪的结果:inbox_group GET /groups/:id/inbox(.:format){:controller = >“groups”,:action =>“inbox”} – AnApprentice 2011-05-13 23:28:36
尝试提供使用url_for获取的路径 - http://apidock.com/rails/ActionDispatch/Integration/RequestHelpers/get – Roman 2011-05-13 23:36:38
这会是什么样子? – AnApprentice 2011-05-13 23:44:04