jasmine toHaveBeenCalled部分匹配

问题描述 投票:0回答:3

有了 Jasmine,我可以监视方法并找出论点。我希望能够打电话给

toHaveBeenCalledWith(something, anything)

假设我想监视一个方法

.on(event, callback)
。我所关心的是
event
是否被监听,而不是实际的回调标识是什么。是否可以在不编写自定义匹配器的情况下做到这一点?我没有看到一个。

javascript unit-testing jasmine
3个回答
132
投票

尝试

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

62
投票

茉莉花2:

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

https://jasmine.github.io/api/edge/jasmine.html#.objectContaining


26
投票

如果您想测试特定的事情,您可以执行以下操作:

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

Jasmine 2 中的语法现在是:

mockSomething.someMethod.calls.mostRecent().args[0]
© www.soinside.com 2019 - 2024. All rights reserved.