我有一个mapModule
,在这里我导入组件并导出它们:
import ComponentName from '../components/ComponentName';
export default {
name: ComponentName,
};
如何测试mapModule
是否具有正确的导出键和值,以及它们是否为null或未定义?
在版本23.3中。不开玩笑,
expect(string).toMatch(string)
期待一个字符串。
使用:
const expected = { name:'component name' }
const actual = { name: 'component name', type: 'form' }
expect(actual).toMatchObject(expected)
结果是通过测试
您可以使用以下选项之一:
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
或轻松使用toHaveProperty:
let Obj = {name: 'component name'};
expect(oneObj).toHaveProperty('name') // true
expect(oneObj).toHaveProperty('name', 'component name') // true
请记住,. toMatchObject
检查
“JavaScript对象与对象属性的子集相匹配。”
因此,toMatchObject
可能会有非预期的断言,例如:
expect({ a: 1, b: 2 }).toMatchObject({ a: 1 }); // pass
如果要精确匹配对象,应使用。ToStritteQual
,自第23次会议起提供:
expect({ a: 1, b: 2 }).toStrictEqual({ a: 1 }); // fail