En écrivant RSpec, j'ai dû passer du temps à chercher "Quel produit et quelle spécification ai-je écrit pour une comparaison similaire?", Je vais donc le résumer en un article ici. .. J'espère que cela vous aidera, vous et d'autres développeurs, à l'avenir.
it 'Le journal des erreurs est sorti' do
expect(Rails.logger).to receive(:error).with(/code: 400/)
#Ci-dessous, écrivez le processus que vous souhaitez tester
end
Comme un point
avec
. Si vous l'écrivez tel quel, il ne passera pas sauf s'il s'agit d'une correspondance exacte, vous pouvez donc écrire un cas contenant un message spécifique en le plaçant dans une barre oblique. Expression dite régulière.it 'Aucun journal d'erreurs n'est sorti' do
expect(Rails.logger).to receive(:error).exactly(0).times
#Ci-dessous, écrivez le processus que vous souhaitez tester
end
Dans l'application de l'exemple précédent, je voulais également cocher "Dans le cas où le processus se termine normalement, aucun journal des erreurs ne doit être généré."
Comme vous pouvez spécifier le nombre de fois en vous connectant à la méthode receive
, j'ai confirmé que la méthode n'était pas appelée dans .exactly (0) .times
.
Site référencé
Les gens qui écrivent Ruby et Rails disent souvent: "C'est naturel!", Mais j'ai été affecté au développement à grande échelle en utilisant Rails pour la première fois récemment, et je suis confus. Je l'ai eu lorsque je le développais, alors j'espère que vous pouvez le voir avec un œil doux. Je l'ajouterai quand quelque chose qui semble utilisable sortira.
Merci beaucoup.
Recommended Posts