Skip to content

Testing del dominio

DDD facilita tests que describen reglas de negocio con claridad.

Tests de entidades

txt
given order without lines
when confirm
then it fails

Estos tests no necesitan base de datos ni HTTP.

Tests de value objects

txt
EmailAddress rejects invalid format
Money cannot have negative amount
DateRange requires end after start

Son pequenos, rapidos y muy valiosos.

Tests de agregados

Prueban invariantes:

txt
confirmed order cannot be cancelled after shipping
published course requires at least one lesson
invoice cannot be paid twice

Tests de casos de uso

Usan repositorios en memoria y gateways fake:

txt
given existing draft order
when confirm order use case runs
then order is saved as confirmed
and OrderConfirmed is published

Tests de eventos

Comprueban:

  • Evento emitido.
  • Datos correctos.
  • Idempotencia del consumidor.
  • Version del contrato.

Checklist

  • Los tests usan lenguaje de negocio.
  • Las reglas criticas estan cubiertas.
  • Los tests de dominio son rapidos.
  • Los casos de uso usan fakes simples.
  • Los eventos publicados se verifican.