web-dev-qa-db-fra.com

jasmine toHaveBeenCalledWith correspondance partielle

Avec Jasmine, je pouvais espionner les méthodes et comprendre les arguments. Je veux pouvoir appeler toHaveBeenCalledWith(something, anything).

Disons que je veux espionner une méthode .on(event, callback). Tout ce qui m'importe, c'est que le event soit écouté plutôt que l'identité réelle du rappel. Est-il possible de le faire sans écrire un matcher personnalisé? Je n'en vois pas.

48
Pwnna

Essayer

toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Function))
62
beautifulcoder

Si vous souhaitez tester des choses spécifiques, vous pouvez faire quelque chose comme:

expect(mockSomething.someMethod.mostRecentCall.args[0].pool.maxSockets).toEqual(50);

La syntaxe dans Jasmine 2 est maintenant:

mockSomething.someMethod.calls.mostRecent().args[0]
15
Cmag