Skip to content

Qu'est-ce qu'un "spy" (espion) ?

Un "spy" dans Jasmine est une fonction qui "remplace" une fonction donnée et enregistre des informations sur ses appels, comme les arguments avec lesquels elle a été appelée, combien de fois elle a été appelée, etc. Cela est utile lorsque vous voulez vérifier comment une fonction est utilisée pendant vos tests sans réellement exécuter la fonction d'origine.

jasmine.createSpy()

jasmine.createSpy() est une méthode pour créer un nouveau spy.

Lorsque vous faites :

javascript
const navigateByUrlSpy = jasmine.createSpy('navigateByUrl');
const navigateByUrlSpy = jasmine.createSpy('navigateByUrl');

Vous créez un nouveau spy pour une fonction appelée navigateByUrl. Ce spy peut ensuite être utilisé pour "remplacer" la fonction originale navigateByUrl et enregistrer des informations sur comment elle est appelée.

Par exemple, après avoir utilisé ce spy dans votre code de test, vous pourriez faire quelque chose comme :

javascript
expect(navigateByUrlSpy).toHaveBeenCalled();
expect(navigateByUrlSpy).toHaveBeenCalled();

pour vérifier si la fonction a été appelée. Ou encore :

javascript
expect(navigateByUrlSpy).toHaveBeenCalledWith('/some-route');
expect(navigateByUrlSpy).toHaveBeenCalledWith('/some-route');

pour vérifier si elle a été appelée avec un argument spécifique.