web-dev-qa-db-fra.com

Attendez-vous à ne pas lancer la fonction avec des arguments - Jasmine

J'ai une fonction qui obtient 3 arguments. Je veux vérifier que cette fonction ne génère pas d'erreur. J'ai fait quelque chose comme ça:

expect(myFunc).not.toThrow();

Le problème est myFunc besoin d'obtenir des arguments. Comment envoyer les arguments?

P.S J'ai essayé de lui passer l'argument mais j'ai eu une erreur que myFunc(arg1, arg2, arg3) n'est pas une fonction.

23
Sagie

toThrow matcher requiert que la fonction soit passée en argument à expect pour que vous puissiez simplement encapsuler votre appel de fonction dans une fonction anonyme:

expect(function() {
    myFunc(arg1, arg2, arg3);
}).not.toThrow();

Vous pouvez également utiliser bind pour créer une nouvelle 'version' de votre fonction qui, lorsqu'elle sera appelée, sera transmise avec les arguments fournis:

expect(myFunc.bind(null, arg1, arg2, arg3)).not.toThrow();
33
Bartek Fryzowicz