Javascript Sinon存根方法,参数与特定对象键匹配

Javascript Sinon存根方法,参数与特定对象键匹配,javascript,unit-testing,sinon,Javascript,Unit Testing,Sinon,我有一个方法: const validate = ({ foo, bar }) => foo && bar 本质上,只要您传递一个带有foo和bar键集的对象,该方法就会返回true 正在尝试将其存根并努力查看如何执行: validate: stub().withArgs(???).returns(true) 我想将不同的数据(不同的断言)传递到validate存根中,并且只有在传入对象中同时设置了foo和bar键时,它才会返回true 例如: t.is(validat

我有一个方法:

const validate = ({ foo, bar }) => foo && bar
本质上,只要您传递一个带有
foo
bar
键集的对象,该方法就会返回
true

正在尝试将其存根并努力查看如何执行:

validate: stub().withArgs(???).returns(true)
我想将不同的数据(不同的断言)传递到
validate
存根中,并且只有在传入对象中同时设置了
foo
bar
键时,它才会返回true

例如:

t.is(validate({ foo: 'foo', bar: 'bar' }), true)
t.is(validate({ foo: 'foo' }), false)

嗯,你想做点什么吗?:
validate:(预期为withArgs)=>stub().withArgs(预期为withArgs)。返回(预期为)
t.is(验证({foo:'foo',bar:'bar'},true)),true)(注意调用实际存根的第二个()运算符)。这基本上是一种类似于工厂的方法,它使用给定参数的预期返回值创建存根在您给出的示例中,您根本不需要存根验证——您的
t.is…
语句可以与您的非存根
validate
函数一起使用。是否有其他要运行的断言将使用Sinon API属性?像
t.is(validate.calledTwice,true)