Enum singleton sınıfıyla nasıl başa çıkılacağından emin değilim.Enum singleton sınıfını Mockito/Powermock kullanarak nasıl alay edebilirsiniz?
public enum SingletonObject{
INSTANCE;
private int num;
protected setNum(int num) {
this.num = num;
}
public int getNum() {
return num;
}
Yukarıdaki örnekte() getNum saplama istiyorum ama gerçek SingletonObject sınıfı alay anlamaya olamaz. Enums'lar doğal olarak final olduğundan, testin hazırlanmasına yardımcı olmak için Powermock'u kullanmayı düşündüm.
//... rest of test code
@Test
public void test() {
PowerMockito.mock(SingletonObject.class);
when(SingletonObject.INSTANCE.getNum()).thenReturn(1); //does not work
}
Bu, PowerMockMockito 1.4.10 ve Mockito 1.8.5 kullanıyor.
Benzer bir konuya bakın: http://stackoverflow.com/questions/2302179/mocking-a-singleton-class –
Teşekkürler Martin, ben bu konudan okudum ve enum olmayan yolunu kullanmayla ilgili bir yaklaşım gibi görünüyor. tek birtonu uygulamak ve bu yöntemle alay etmek için kullanabiliyorum. Bununla birlikte, bir enum singleton sınıfıyla dalga geçmenin bir yolu var mı? Topladığımdan, enum singleton sınıfı, java 1.5 sonrası bir singleton bildirmek için önerilen yöntemdir. –
[Re: PowerMock: ener alay edebilir miyim?] (Https://groups.google.com/forum/?fromgroups=#!topic/powermock/hqrJaMi0Zrc) – Joe