Pensei muito na melhor forma de fazer um teste unitário de uma funcionalidade "maior" e cheguei a uma ideia de como montar.
Suponto que eu estou trabalhando um serviço de consolidação de comissão, nesse serviço decidimos manter a consolidação de comissão como uma função que faz parte do serviço de comissão, mas para automatizar essa consolidação criamos um comando que executara de tempo em tempo que criara um Job que sera realizado para consolidar a comissão.
Nessa comissão temos algumas configurações "payment_method", "blocked", "paid_at", "expected_date", "released_at", para criar o Job temos algumas regras, buscamos as comissões pelo metodo de "payment_method", que não esteja "blocked", que esteja "paid_at", que não esteja "released_at" e que a data "expected_date" seja menor ou igual a atual.
Esse job para consolidar a comissão precisa verificar se a comissão está "blocked", pois existem outros eventos que podem ocorrer que deixem a comissão bloqueado e comparar o dia atual com a data de pagamentos pa