Reputation: 9528
With Jasmine, I could spy on methods and figure out the arguments. I want to be able to call toHaveBeenCalledWith(something, anything)
.
Let's say I want to spy on a method .on(event, callback)
. All I care about is if the event
is listened to rather than what the actual callback identity is. Is it possible to do this without writing a custom matcher? I don't see one.
Upvotes: 110
Views: 56218
Reputation: 8086
Jasmine 2:
expect(callback).toHaveBeenCalledWith(jasmine.objectContaining({
bar: "baz"
}));
https://jasmine.github.io/api/edge/jasmine.html#.objectContaining
Upvotes: 69
Reputation: 15750
If you wish to test for specific things, you can do something like:
expect(mockSomething.someMethod.mostRecentCall.args[0].pool.maxSockets).toEqual(50);
The syntax in Jasmine 2 is now:
mockSomething.someMethod.calls.mostRecent().args[0]
Upvotes: 27
Reputation: 11320
Try
toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Function))
Upvotes: 142