Dan*_*olf 7 javascript unit-testing jestjs
在 Jest 中编写单元测试时,如何测试数组是否包含任何顺序的预期值?
在 Chai,我可以写:
const value = [1, 2, 3];
expect(value).to.have.members([2, 1, 3]);
Run Code Online (Sandbox Code Playgroud)
Jest 中的等效语法是什么?
另一种方法是使用自定义匹配.toIncludeSameMembers()的玩笑社区/笑话扩展。
README 中给出的示例
test('passes when arrays match in a different order', () => {
expect([1, 2, 3]).toIncludeSameMembers([3, 1, 2]);
expect([{ foo: 'bar' }, { baz: 'qux' }]).toIncludeSameMembers([{ baz: 'qux' }, { foo: 'bar' }]);
});
Run Code Online (Sandbox Code Playgroud)
仅为一个匹配器导入库可能没有意义,但我发现它们还有很多其他有用的匹配器。
附加说明,如果您使用的是 Typescript,则应导入添加expect到此行的方法的类型:
import 'jest-extended';
Run Code Online (Sandbox Code Playgroud)
关于什么arrayContaining
expect(value).toEqual(expect.arrayContaining([2, 1, 3]));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5148 次 |
| 最近记录: |