Ho alcuni metodi di utilizzo statico nel mio progetto, alcuni di loro passano o generano un'eccezione. Ci sono molti esempi là fuori su come simulare un metodo statico che ha un tipo di ritorno diverso da vuoto. Ma come posso prendere in giro un metodo statico che restituisce nulla solo a "doNothing()
"?Come si simula un metodo statico che restituisce void con PowerMock?
La versione non-vuoto usa queste righe di codice:
@PrepareForTest(StaticResource.class)
...
PowerMockito.mockStatic(StaticResource.class);
...
Mockito.when(StaticResource.getResource("string")).thenReturn("string");
Tuttavia, se applicata a un StaticResources
che restituisce void
, la compilazione si lamenterà che when(T)
non è applicabile per void ...
Qualche idea?
Una soluzione alternativa sarebbe probabilmente quella di avere tutti i metodi statici per restituire un po 'di Boolean
per il successo, ma non mi piace soluzioni alternative.
purtroppo, che non funzionerà come quando() accetta solo una variabile e StaticResource è un tipo. ('StaticResource non può essere risolto in una variabile') – Pete
Oh sì, mi spiace, hai ragione, il mio codice è sbagliato, sono abituato ai mock non statici. Ad ogni modo ho aggiornato il mio ansswer per riflettere la sintassi corretta. – Brice
Grazie! Quindi avere metodi di supporto statici che non hanno dipendenze è una cattiva idea? Ovviamente potrei semplicemente iniettare e obiettare che fa il lavoro ma sembra che abbia senso mettere lavoratori che non hanno dipendenze in un oggetto statico per significare la loro indipendenza .. – Pete