Sé que podría arrojar un error desde dentro de la prueba, pero me pregunto si hay algo como el método global fail() proporcionado por Jasmine.
Jest en realidad usa Jasmine, por lo que puedes usar fail como antes.
Ejemplo de llamada:
fail('it should not reach here');Aquí está la definición del archivo de declaración de TypeScript para Jest:
declare function fail(error?: any): never; Si sabe que una llamada en particular debería fallar, puede usar expect .
expect(() => functionExpectedToThrow(param1)).toThrow(); // or to test a specific error use expect(() => functionExpectedToThrow(param1)).toThrowError(); Consulte los documentos de Jest para obtener detalles sobre cómo pasar una cadena, una expresión regular o un objeto de error para probar el error esperado en el método toThrowError .
Para una llamada asincrónica, use .rejects
// returning the call return expect(asyncFunctionExpectedToThrow(param1)) .rejects(); // or to specify the error message // .rejects.toEqual('error message');Con async/await necesitas marcar la función de prueba con async
it('should fail when calling functionX', async () => { await expect(asyncFunctionExpectedToThrow(param1)) .rejects(); // or to specify the error message // .rejects.toEqual('error message'); }Consulte la documentación sobre .rejects y en el tutorial .
También tenga en cuenta que la función de fail de Jasmine puede eliminarse en una versión futura de Jest, consulte el comentario de Yohan Dahmani. Puede comenzar a usar el método de expect anterior o hacer un fail de búsqueda y reemplazo con throw new Error('it should not reach here'); como se menciona en otras respuestas. Si prefiere la concisión y la legibilidad de fail , siempre puede crear su propia función si la de Jasmine se elimina de Jest.
function fail(message) { throw new Error(message); }Puedes hacerlo arrojando un error. Por ejemplo:
test('Obi-Wan Kenobi', () => { throw new Error('I have failed you, Anakin') })Prueba fallida de copiar/pegar:
it('This test will fail', done => { done.fail(new Error('This is the error')) })