Non sono sicuro su come prendere in giro una classe enum singleton.Come prendere in giro una classe enum singleton usando Mockito/Powermock?
public enum SingletonObject{
INSTANCE;
private int num;
protected setNum(int num) {
this.num = num;
}
public int getNum() {
return num;
}
vorrei stub getNum() nell'esempio di cui sopra, ma non riesco a capire come per deridere la classe SingletonObject vero e proprio. Pensavo che usare Powermock per preparare il test sarebbe stato d'aiuto dato che le enumerazioni sono intrinsecamente definitive.
//... rest of test code
@Test
public void test() {
PowerMockito.mock(SingletonObject.class);
when(SingletonObject.INSTANCE.getNum()).thenReturn(1); //does not work
}
Questo utilizza PowerMockMockito 1.4.10 e Mockito 1.8.5.
Verificare thread simile: http://stackoverflow.com/questions/2302179/mocking-a-singleton-class –
Grazie Martin, ho letto attraverso quel thread e sembra un approccio per utilizzare il modo non enum di implementando un singleton, e sono in grado di usare correttamente il mocking con quel metodo. Tuttavia, c'è un modo per deridere una classe enum singleton? Da quello che ho raccolto, la classe enum singleton è il metodo raccomandato per dichiarare un singleton dopo java 1.5. –
[Re: PowerMock: posso prendere in giro le enumerazioni?] (Https://groups.google.com/forum/?fromgroups=#!topic/powermock/hqrJaMi0Zrc) – Joe