(Não há fontes "oficiais" aqui, receio - não é como se houvesse uma especificação de como testar bem. Apenas as minhas opiniões, que esperamos que sejam úteis.)
Quando esses métodos estáticos representam as dependências genuínas , crie wrappers. Então, para coisas como:
- ImageIO
- Clientes HTTP (ou qualquer outra coisa relacionada à rede)
- O sistema de arquivos
- Obtendo a hora atual (meu exemplo favorito de onde a injeção de dependência ajuda)
... faz sentido criar uma interface.
Mas muitos dos métodos no Apache Commons provavelmente não devem ser ridicularizados / falsificados. Por exemplo, use um método para unir uma lista de strings, adicionando uma vírgula entre elas. Não há ponto em zombar deles - apenas deixe a chamada estática fazer seu trabalho normal. Você não quer ou precisa substituir o comportamento normal; você não está lidando com um recurso externo ou algo difícil de se trabalhar, são apenas dados. O resultado é previsível e você nunca desejaria que fosse qualquer coisa outra do que o que você terá de qualquer maneira.
Eu suspeito que ter removido todas as chamadas estáticas que realmente são métodos conveniência com resultados previsíveis, "puros" (como codificação base64 ou URL) em vez de pontos de entrada em uma grande confusão de dependências lógicas (como o HTTP) você verá que é totalmente prático fazer a coisa certa com as dependências genuínas.