Ответ 1
Try
toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Function))
С Жасмином я мог следить за методами и выяснять аргументы. Я хочу иметь возможность называть toHaveBeenCalledWith(something, anything)
.
Скажем, я хочу подсмотреть метод .on(event, callback)
. Все, о чем я забочусь, - это если прослушивается event
, а не фактический идентификатор обратного вызова. Можно ли это сделать без написания пользовательского совпадения? Я не вижу этого.
Try
toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Function))
Если вы хотите проверить конкретные вещи, вы можете сделать что-то вроде:
expect(mockSomething.someMethod.mostRecentCall.args[0].pool.maxSockets).toEqual(50);
Синтаксис в Жасмин 2 теперь такой:
mockSomething.someMethod.calls.mostRecent().args[0]
Жасмин 2:
expect(callback).toHaveBeenCalledWith(jasmine.objectContaining({
bar: "baz"
}));
FWIW, jasmine.any(Object)
в соответствии с предложением beautifulcoder и jasmine.anything()
в соответствии с предложением John Neuhaus не работает, если будет передано undefined
.
Конечно, мои тесты будут проходить undefined
или Object
, поэтому я не могу использовать ни одно из этих решений. Спасибо за совет, хотя!