GIN

2011-09-06 11 views
6

'daki bağlama nasıl geçersiz kılar Guice Overriding Binding in Guice cevabını bulabilirim ama GIN'de GWT için nasıl yapıldığını bilmiyorum.GIN

Şimdiden teşekkürler!

+0

Neden bir GinModule geçersiz kılmak istiyoruz? – Luismahou

+1

Merhaba, birim testinde sahte impl ile bazı bağları değiştirmeyi düşünüyorum. Bu desteklenirse, modülün genişletilmesi ve bağlantıların geçersiz kılınması ile bunların yerine geçebilirim ... –

cevap

5

Bildiğim kadarıyla, desteklenmiyor.

yorum cevaplamak için:

Eğer "saf" JUnit testleri (değil GWTTestcases) Eğer CİN kullanmayın çalıştırıyorsanız, sen Guice kullanın ve Guice size modülleri geçersiz kılabilir. GIN modüllerini yeniden kullanmak isterseniz, GinModuleAdapter'u kullanarak sarın.

static class MyGinModule extends GinModule { 
    ... 
} 
static class MyGuiceModule extends AbstractModule { 
    ... 
} 

// And somewhere in your code, here's how you could create the Injector 
Module myWrappedGinModule = new GinModuleAdapter(new MyGinModule()); 
Module myModule = Modules.override(myWrappedGinModule).with(new MyGuiceModule()); 
Injector injector = Guice.createInjector(myModule); 
+0

+1, cihaza yönelik testlerde, gin yerine guice kullanıldığını belirtmek için. – Peter

0

Arayüzünüze @ImplementedBy ek açıklamasını kullanın: Yani böyle bir şey yapabilirsiniz.

Ek açıklamada belirtilen sınıf varsayılan uygulama olacaktır.

Varsayılanı etkin bir şekilde geçersiz kılan başka bir uygulama belirtebilirsiniz. Örneğin

:

@ImplementedBy(MyWidgetImpl.class) 
public interface MyWidget { 
    //... 
} 

public class MyWidgetImpl implements MyWidget { 
    //... 
} 
İlgili konular