Jest:如何测试对象键和值?

2022-08-30 01:06:16

我有一个导入组件并导出它们的地方:mapModule

import ComponentName from '../components/ComponentName';

export default {
  name: ComponentName,
};

如何测试是否具有正确的导出键,值以及它们是否为空或未定义?mapModule


答案 1

在 jest 的 23.3.0 版本中,

expect(string).toMatch(string) 

需要一个字符串。

用:

const expected = { name:'component name' }
const actual = { name: 'component name', type: 'form' }
expect(actual).toMatchObject(expected)

结果通过测试


答案 2

您可以使用以下其中一项:

toEqual 和 toMatchObject 是对象的模板匹配器:

let Obj = {name: 'component name', id: 2};
expect(oneObj).toEqual({name: 'component name'}) // false, should be exactly equal all Obj keys and values  
expect(oneObj).toMatchObject({name: 'component name'}) // true

或轻松使用到有属性:

let Obj = {name: 'component name'};
expect(oneObj).toHaveProperty('name') // true
expect(oneObj).toHaveProperty('name', 'component name') // true