Essendo recentemente tornato da un corso Test Driven Development (TDD) ho avuto il seguente pensiero.
Durante la scrittura dei test di unità usando Mockito ci siamo imbattuti nel problema di prendere in giro metodi statici. È stato suggerito da uno sviluppatore che usiamo PowerMock, che consente di prendere in giro metodi statici, e quindi abbiamo avuto una grande discussione su come dovremmo affrontare questo problema.
Tuttavia, secondo la mia esperienza, i metodi statici dovrebbero essere usati solo come metodi di tipo utility. L'esempio classico di java è Math.random ().
Quindi, solo un metodo statico dovrebbe eseguire un'azione definita a prescindere da qualsiasi interazione con un'istanza di classe. Se questo non è il tuo caso e hai bisogno di un'interazione di istanza di classe, il tuo metodo non dovrebbe essere statico ed è necessario rivedere il tuo design.
Quindi la mia domanda è, con questo in mente, dovresti aver bisogno di prendere in giro metodi statici? Se eseguono sempre un'azione semplice, sicuramente dovresti chiamarli come faresti nel codice reale.