2011-09-06 14 views
6

Trovo la risposta per Guice Overriding Binding in Guice ma non so come fare lo stesso per GIN in GWT.Come sovrascrivere il binding nel GIN

Grazie in anticipo!

+0

Perché vuoi sovrascrivere un GinModule per? – Luismahou

+1

Ciao, sto pensando di rimpiazzare alcuni attacchi con mock impl nel test dell'unità. se questo è supportato, posso sostituirli estendendo il modulo e sovrascrivendo i binding ... –

risposta

5

Per quanto ne so, non è supportato.

Per rispondere a un commento:

Se si sta eseguendo test JUnit "puri" (non GWTTestcases) non si usa GIN, si utilizza Guice, e in Guice è possibile ignorare i moduli. Se si desidera riutilizzare i moduli GIN, quindi avvolgerli utilizzando GinModuleAdapter. Così si può fare qualcosa di simile:

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 per aver menzionato che nei test di junit viene usato il guice invece del gin. – Peter

0

Utilizzare la @ImplementedBy annotazioni nell'interfaccia.

La classe specificata nell'annotazione sarà l'implementazione predefinita.

È possibile specificare un'altra implementazione, ignorando in modo efficace il valore predefinito.

Ad esempio:

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

public class MyWidgetImpl implements MyWidget { 
    //... 
} 
Problemi correlati