2014-01-13 12 views
17

Mit Jasmine konnte ich Methoden ausspionieren und die Argumente herausfinden. Ich möchte toHaveBeenCalledWith(something, anything) anrufen können.Jasmine toHaveBeenCalledWith Teilweise Übereinstimmung

Sagen wir, ich möchte eine Methode ausspionieren .on(event, callback). Alles, was mir wichtig ist, ist, wenn die event gehört wird, anstatt, was die eigentliche Callback-Identität ist. Ist es möglich, dies zu tun, ohne einen benutzerdefinierten Matcher zu schreiben? Ich sehe keinen.

Antwort

33

Versuchen

toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Function)) 
+0

Great! Einfach, schön, gut. –

9

Wenn Sie bestimmte Dinge testen möchten, können Sie so etwas wie tun:

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

Nützlich für zusätzliche optionale Argumente. Beachten Sie, dass die Syntax in Jasmine 2 jetzt "mockSomething.someMethod.calls.mostRecent(). Args [0]" lautet –

Verwandte Themen