O problema é que toda a sua lógica de negócio está acoplada na camada de apresentação das rotas, dessa forma você não consegue testar pequenos trechos, como por exemplo uma função que passando os dados do usuário, ela valida e adiciona no banco.

Pra isso voce vai precisar desacoplar a lógica, podendo usar uma camada de serviço, então a sua arquitetura irá receber as requisições nas rotas e passar pra função desejada, dessa forma você consegue testar se aquela função faz o que é esperado que ela faça, independente de onde você a chamou (através de uma rota ou um teste unitário).