Ir al contenido principal
Laravel, thinking fast.

Para las partes que sí son cuestión de criterio, las pruebas son cómo evitas que una decisión se vuelva a discutir:

it('keeps the provider ordering when two candidates cover the query equally', function () {
    // From live Pixabay results for "mopping office floor": both a photo
    // tagged "mopping, floor" and a home-office photo tagged "office, floor"
    // cover two terms. Weighting terms by position preferred the home office;
    // provider relevance order is the better arbiter.
    $candidates = [
        ['url' => 'https://img/mopping.jpg', 'alt' => 'kid child boy mopping jeans wooden floor eyeglasses door'],
        ['url' => 'https://img/home-office.jpg', 'alt' => 'home office notebook couch sofa computer laptop floor'],
    ];
    //
});

Datos reales, copiados de una respuesta real, con un comentario que explica qué demuestran. Eso es una medición escrita —el tema del siguiente capítulo— y significa que la alternativa que se probó y se descartó no puede volver en silencio.

Qué no probar

No la redacción de un prompt. Se rompe en cada edición legítima y enseña a la gente a borrar pruebas.

No la salida del modelo. «La respuesta menciona el nombre del negocio» pasa el martes y falla el miércoles sin que nadie pueda arreglarlo.

No el comportamiento del proveedor. Su contrato es suyo. Prueba qué haces tú con lo que te envían, incluidas las formas que no has visto nunca.

Si quieres confianza en la calidad de la salida, ese es otro instrumento: un pequeño conjunto de casos grabados que reejecutas deliberadamente cuando cambias un prompt, y que lees con los ojos. Útil, y no una barrera de integración continua.

Lo que sostiene este capítulo

  • No puedes hacer aserciones sobre el modelo, y da igual. Todos los fallos de este libro vivían en el código que lo rodea.
  • preventStrayRequests antes que Http::fake. Si no, una petición sin cubrir llega calladamente a una API de pago.
  • Prueba el bucle dándole razones de parada. Cada rama es un caso, y una nueva del proveedor se convierte en una línea más.
  • Ejercita las herramientas a través del servidor, para cubrir registro, esquema y validación —y comprueba que lo no publicado sigue sin publicarse.
  • Dale al camino de fallo su propio fichero, con el fallo dispuesto una vez, y afirma el estado del mundo, no la redacción.
  • Comprueba que dos descripciones de un contrato siguen coincidiendo.
  • Convierte mediciones en fixtures para que una alternativa descartada no pueda volver.
  • No pruebes prosa, ni salida, ni al proveedor.