2017-10-10 1 views
-3

je déclaration suivantecomment ajouter du contenu dans un tableau dans l'unité essai

let(:parsed_response) { JSON.parse(response.body) } 

Il me retourne la sortie suivante

{"a"=>1, "b"=>"2", "c"=>"3", "d"=>"4", "e"=>"5", "f"=>[]} 

et je l'ai déclaration suivante

let(:f_output) do 
    FactoryGirl.create(:something, 
         g: something.id, 
         h: something2.id, 
         i: 'something') 
    end 

Comment je charge l'élément f à partir de la première sortie de l'instruction avec le résultat de l'objet f_output?

{"a"=>1, "b"=>"abc", "c"=>"def", "d"=>"ges", "e"=>"ehd", "f"=>["g"=>"kjl", "h"=>"oel", "i"=>"pde"]} 

Répondre

0

Vous pouvez fusionner dans les attributs:

parsed_response.merge('f' => f_output.attributes) 
0

Vous pouvez utiliser Hash#merge.

Donc, si vous vouliez que ce soit toujours une partie de votre parsed_response, vous pouvez modifier votre déclaration let à quelque chose comme:

let(:parsed_response) { JSON.parse(response.body).merge('f' => f_output.attribtutes) }