我有一个mapModule,我导入组件并导出它们:
import ComponentName from '../components/ComponentName';
export default {
name: ComponentName,
};
我如何测试mapModule有正确的导出键,值,他们不是空或未定义?
我有一个mapModule,我导入组件并导出它们:
import ComponentName from '../components/ComponentName';
export default {
name: ComponentName,
};
我如何测试mapModule有正确的导出键,值,他们不是空或未定义?
当前回答
你可以用单把钥匙结账
期望(布尔(obj[支持]))。toBe(true | false);
对于多个键(所有键都必须存在),您可以使用,
expect(Boolean(obj[prop1]) && Boolean(obj[prop2])))。toBe(true | false);
对于多个键(其中任何一个必须存在),您可以使用
expect(Boolean(obj[prop1]) || Boolean(obj[prop2]))。toBe(true | false);
其他回答
另一种方法是:
expect(JSON.stringify(object)).toBe(JSON.stringify(object))
这将确保对象是相同的。
然而使用这个:
expect(object).toMatchObject(object)
是大多数情况下的最佳选择。
你可以用单把钥匙结账
期望(布尔(obj[支持]))。toBe(true | false);
对于多个键(所有键都必须存在),您可以使用,
expect(Boolean(obj[prop1]) && Boolean(obj[prop2])))。toBe(true | false);
对于多个键(其中任何一个必须存在),您可以使用
expect(Boolean(obj[prop1]) || Boolean(obj[prop2]))。toBe(true | false);
你可以使用其中之一:
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
在23.3.0版本的jest中,
expect(string).toMatch(string)
期望一个字符串。
Use:
const expected = { name:'component name' }
const actual = { name: 'component name', type: 'form' }
expect(actual).toMatchObject(expected)
结果通过测试
请记住.toMatchObject检查
“JavaScript对象匹配对象属性的子集。”
所以toMatchObject可以有意想不到的断言,比如:
expect({ a: 1, b: 2 }).toMatchObject({ a: 1 }); // pass
如果你想精确匹配一个对象,你应该使用.toStrictEqual,自jest 23起可用:
expect({ a: 1, b: 2 }).toStrictEqual({ a: 1 }); // fail