Jasmine 被称为部分匹配

有了 Jasmine,我可以监视方法并找出参数,我想能够调用 toHaveBeenCalledWith(something, anything)

假设我想监视一个方法 .on(event, callback)。我所关心的是 event是否被监听,而不是实际的回调标识是什么。有没有可能在不编写自定义匹配器的情况下完成此操作?我没看到。

43291 次浏览

Try

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

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]

Jasmine 2:

 expect(callback).toHaveBeenCalledWith(jasmine.objectContaining({
bar: "baz"
}));

https://jasmine.github.io/2.0/introduction.html