Comment créer un test rspec qui valide une réponse JSON?
J'ai un Groupes de Contrôleur avec une méthode def inbox.
Si l'utilisateur est un membre du groupe, puis la boîte de réception retourne un objet JSON.
Si l'utilisateur n'est pas membre, puis la boîte de réception, réorienter grâce à CanCan autorisations.
Comment puis-je écrire un rspec pour tester ces deux cas d'utilisation?
Spec actuelle:
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
Routes:
inbox_group GET /groups/:id/inbox(.:format) {:controller=>"groups", :action=>"inbox"}
Fichier De Routes:
resources :groups do
member do
get 'vcard', 'inbox'
end
....
end
source d'informationauteur AnApprentice
Vous devez vous connecter pour publier un commentaire.
C'est comment je fais ceci:
Je ne suis pas à l'aide de french cancan, donc je ne peux pas aider avec cette partie.
Parfois, il pourrait être assez bon pour vérifier si
response
contient JSON valide, voici un exemple:Essayez ceci:
Je pense que la première chose que vous voulez faire est de vérifier que la réponse est du type correct, c'est à dire qu'il a la
Content-Type
en-tête défini àapplication/json
quelque chose le long des lignes de:Ensuite, selon votre cas, vous pourriez vouloir vérifier si la réponse peut être analysée comme JSON, comme wik suggéré:
Et vous pouvez fusionner les deux ci-dessus dans un seul test si vous vous sentez comme deux tests pour la vérification de la réponse JSON validité sont trop.
D'affirmer JSON, vous pouvez le faire aussi:
Cette blog donne encore plus d'idées.