Uso Jest para probar si una matriz grande contiene un valor dado:
it('should contain x', () => { const myArray: string[] = myFunction(); expect(myArray).toContain('x'); });Cuando la prueba falla, Jest corta la matriz recibida:
Expected value: "x" Received array: ["a", "b", "c", "d", "e", "f", "g", "h", ...]Esto hace que sea difícil para mí comprobar por qué falló la prueba. ¿Puedo obligar a Jest force a imprimir toda la matriz recibida en lugar de cortarla?
Podrías revisar esta respuesta.
En su caso de uso específico, yo:
describe("log long array", () => { it("logs long array", () => { const testArray: number[] = Array.from(Array(10000).keys()), expectedNumber = 99999999; try { expect(testArray).toContain(expectedNumber); } catch { console.log("Test failed! Array:", JSON.stringify(testArray)); expect(testArray).toContain(expectedNumber); } }); });También puede detectar y registrar el error si lo desea.
Tenga en cuenta que estoy llamando a la misma expect dos veces, ya que todavía quiero tener el comportamiento normal de Jest para mi prueba fallida
Alternativamente, puede considerar extender jest , lo que permite esperar tener mensajes de error personalizados con, por ejemplo, este paquete, o crear un comparador personalizado (documentos aquí )