2017-01-23 2 views
0

Bonjour j'ai un problème avec le test JSONAPI avec rspec et aéroporté. modèle GET ci-dessous https://i.stack.imgur.com/Cyf75.pngJSONAPI test avec rspec et Airborne

test Im il de cette façon https://i.stack.imgur.com/Y9rHt.png

sortie Rspec:

échecs: 1) GET sur/contacts doivent valider les types Panne/Erreur: expect_json ('books.0 », titre: 'The Great Escape')

Airborne::PathError: 
    Expected NilClass 
    to be an object with property 0 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/path_matcher.rb:21:in `rescue in block in get_by_path' 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/path_matcher.rb:18:in `block in get_by_path' 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/path_matcher.rb:9:in `each' 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/path_matcher.rb:9:in `each_with_index' 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/path_matcher.rb:9:in `get_by_path' 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/request_expectations.rb:137:in `call_with_path' 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/request_expectations.rb:18:in `expect_json' 
# ./book_resource.rb:10:in `block (2 levels) in <top (required)>' 
# ------------------ 
# --- Caused by: --- 
# NoMethodError: 
# undefined method `[]' for nil:NilClass 
# /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/path_matcher.rb:57:in `process_json' 

Terminé en 0.03121 secondes (fichiers pris 0.17681 secondes pour loa d) 1 exemple, 1 échec

+0

S'il vous plaît code postal au lieu de liens vers des captures d'écran. –

+0

Je ne peux pas faire cela, parce que trop faible représentant –

Répondre

0

Votre réponse API ne possède pas la clé books. Au lieu de cela, il renvoie la réponse sous { "data": [ ... ] }. Ainsi, lors de vos tests, vous devez spécifier expect_json('data.0', ...), au lieu de expect_json('books.0', ...).

Espérons que cela devrait résoudre ce problème.

+0

1) GET sur/utilisateurs doivent retourner types valides Panne/Erreur: expect_json ('données.1', nom: "Jack McClure") Airborne :: PathError: attendu NilClass être un objet avec la propriété 1 1) GET sur/les utilisateurs doivent renvoyer des types valides Échec/Erreur: expect_json ('data.1', nom: "Jack McClure") # --- Causé par: - - # NoMethodError: # méthode non définie '[] 'pour néant: NilClass # /home/robert/.rvm/gems/ruby-2.4.0/gems/airborne-0.2.5/lib/airborne/path_matcher.rb : 57: dans 'process_json ' –

+0

Pouvez-vous vous assurer que le point de terminaison'/books' est atteint? – 31piy

+0

Démarré GET "/ api/users" pour 127.0.0.1 at 2017-01-23 12:18:20 +0100 ActiveRecord :: SchemaMigration Charger (0.2ms) SELECT "schema_migrations". * FROM "schema_migrations" Traitement par Api :: UsersController # index en XML Paramètres: {"user" => {}} Chaîne de filtres interrompue en tant que: ensure_valid_accept_media_type rendu ou redirigé Terminé 406 Non acceptable en 201ms (Vues: 0.2ms | ActiveRecord: 0.9ms) –

0

déjà résoudre avec:

décrivent Api :: UsersController ne décrire 'GET sur/utilisateurs' faire avant faire FactoryGirl.create ('user', nom: 'Jack McClure') FactoryGirl.create ('utilisateur', le nom: 'Johny Reaper') FactoryGirl.create ('user', nom: 'Niko Bellic') fin

it 'should return valid user' do 
    get :index, format: 'json' 
    expect_json('data.0.attributes', name: "Jack McClure") 
    expect_json('data.2.attributes', name: 'Niko Bellic') 
end 

fin