Mocking opera su metodi e interfacce, non campi; inoltre, opera su membri di istanza, non membri statici. Mockito e Powermock non sono gli strumenti giusti per risolvere questo problema.
Anche se è possibile use reflection to set final fields, si sta effettivamente lavorando intorno alla vostra dichiarazione, e sono soggetti alle limitazioni e rischi di JLS 17.5.3.
Un disegno migliore sarebbe quella di riscrivere il metodo nel sistema in prova per iniettare la dipendenza SomeClass:
public void methodUnderTest() {
methodUnderTest(MyClass.field);
}
/** Package-visible for testing. Test this method instead. */
void methodUnderTest(SomeClass someClass) {
someClass.firePhotonTorpedoes();
}
fonte
2014-05-13 19:48:49