Depure um caso de teste em um projeto malvado

Às vezes, é difícil depurar um método de caso de teste simples, pois deve haver algumas regras a serem atendidas, dependências a serem injetadas ou configurações a serem inicializadas e que podem estar fora do escopo da classe de teste atual.

Se você estiver usando o maven como sua ferramenta de construção, existe um método definitivo, já que você pode executar seus testes usando o plugin maven surfire anexado para depuração remota em alguma porta.
Basta executar a fase de teste com a propriedade de sistema maven.surefire.debug :

mvn test -Dmaven.surefire.debug -Dtest=full.qualified.name.ClassName#testMethodName

Isso conectará o depurador para ouvir na porta 5005 (usada por padrão), portanto, apenas configure seu IDE favorito para conectar-se a essa porta e definir um ponto de interrupção.

Você pode até mesmo alterar o número da porta usando:

mvn clean test -Dtest=full.qualified.name.ClassName#testMethodName -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE"

Isso anexará o processo de instrução jvm para escutar na porta 8000 .