AnA*_*ice 15 testing json rspec cancan ruby-on-rails-3
我有一个带有方法的组控制器 def inbox.
如果用户是组成员,则收件箱将返回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
Run Code Online (Sandbox Code Playgroud)
路线:
inbox_group GET /groups/:id/inbox(.:format) {:controller=>"groups", :action=>"inbox"}
Run Code Online (Sandbox Code Playgroud)
路线文件:
resources :groups do
member do
get 'vcard', 'inbox'
end
....
end
Run Code Online (Sandbox Code Playgroud)
Rom*_*man 35
这就是我这样做的方式:
describe "GET index" do
it "returns correct JSON" do
# @groups.should have(2).items
get :index, :format => :json
response.should be_success
body = JSON.parse(response.body)
body.should include('group')
groups = body['group']
groups.should have(2).items
groups.all? {|group| group.key?('customers_count')}.should be_true
groups.any? {|group| group.key?('customer_ids')}.should be_false
end
end
Run Code Online (Sandbox Code Playgroud)
我没有使用康康,所以我无法帮助解决这个问题.
| 归档时间: |
|
| 查看次数: |
18403 次 |
| 最近记录: |