Tengo un mapModule donde importo componentes y los exporto:
import ComponentName from '../components/ComponentName'; export default { name: ComponentName, }; ¿Cómo puedo probar que mapModule tiene las claves y valores exportados correctos y que no son nulos o indefinidos?
En la versión 23.3.0 de broma,
expect(string).toMatch(string)espera una cadena.
Usar:
const expected = { name:'component name' } const actual = { name: 'component name', type: 'form' } expect(actual).toMatchObject(expected)el resultado es pasar la prueba
puedes usar uno de esos:
toEqual y toMatchObject son comparadores de plantillas para objetos:
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'}) // trueo use fácilmente toHaveProperty :
let Obj = {name: 'component name'}; expect(oneObj).toHaveProperty('name') // true expect(oneObj).toHaveProperty('name', 'component name') // trueTenga en cuenta que .toMatchObject comprueba
"que un objeto de JavaScript coincide con un subconjunto de las propiedades de un objeto".
Entonces toMatchObject puede tener afirmaciones no deseadas como:
expect({ a: 1, b: 2 }).toMatchObject({ a: 1 }); // pass Si desea hacer coincidir exactamente un objeto, debe usar .toStrictEqual , disponible desde el jest 23 :
expect({ a: 1, b: 2 }).toStrictEqual({ a: 1 }); // fail