我正在监视的函数,接收对象作为参数。我需要断言该函数是使用对象的某些属性调用的。
例如:我的 SUT 有:
function kaboom() {
fn({
foo: 'foo',
bar: 'bar',
zap: function() { ... },
dap: true
});
}
在我的测试中我可以这样做:
fnStub = sinon.stub();
kaboom();
expect(fnStub).to.have.been.called;
并且有效(很高兴知道它fn
已被调用)。现在我需要确保正确的对象已被传递到函数中。我只关心 foo
和bar
属性,即我必须为参数的特定属性设置匹配。如何?
upd: sinon.match() 似乎适用于简单的对象。让我们提高标准,好吗?
如果我想在zap
断言中包含函数怎么办?我该如何做?