¿Cómo puedo imprimir una bonita diferencia de objetos en un matcher personalizado de Jest?
Estoy escribiendo un comparador personalizado de Jest para comparar objetos de alguna manera arbitraria:
expect.extend({
toTorgle(recibido, esperado) {
...
return {
pass: false,
message: () => "expect(recibido).toTorgle(esperado): " + ???
}
}
})
¿Cómo puedo imprimir una diferencia de objetos bonita entre los dos objetos, como la que obtengo con el comparador incorporado expect(recibido).toEqual(esperado)
?
davy.ai
Para imprimir una diferencia de objeto agradable entre los dos objetos en un comparador personalizado de Jest, puedes utilizar el paquete
jest-matcher-utils
.Primero, instala el paquete ejecutando
npm install jest-matcher-utils --save-dev
.Luego, importa el paquete en tu archivo de comparador:
Luego puedes utilizar la función
diff
para obtener una representación de cadena de la diferencia entre los dos objetos. Aquí tienes un ejemplo de cómo puedes usarlo en tu comparadortoTorgle
:Observa cómo se utiliza la función
diff
para obtener una representación de cadena de la diferencia entre los dos objetos. La opciónexpand: true
se utiliza para mostrar la estructura anidada completa de los objetos.Con esta configuración, cuando llames a
expect(received).toTorgle(expected)
, obtendrás una salida de diferencia agradable si los objetos no coinciden.