【问题标题】:How to match some values of object using sinon stub如何使用 sinon stub 匹配对象的某些值
【发布时间】:2019-07-16 06:54:46
【问题描述】:
我一直在用 sinon 写测试。在同一期间,我编写了存根,其中传递了一些输入参数并返回了一个对象。该对象返回一些值和系统在执行时生成的随机日期值。因此需要以下指导。
- 如何处理相同的匹配参数本质上是静态的,我不知道实际代码生成的日期的可能值。
- 我们如何使用 sinon 跳过对象的某些键值。即说对象具有以下值。
const object = {name: "abc", employeeNumber : "123"}我只想检查name是否为“abc”,不需要匹配employeeNumber。
【问题讨论】:
标签:
unit-testing
testing
sinon
sinon-chai
【解决方案1】:
来自sinon.match docs:
要求该值不是null 或undefined,并且至少具有与expectation 相同的属性。
来自sinon.assert.match docs:
使用sinon.match 测试参数是否可以被视为匹配。
例子:
test('partial object match', () => {
const object = { name: "abc", employeeNumber : "123" };
sinon.assert.match(object, { name: 'abc' }); // SUCCESS
})