Hierarchie der Module in guice

8

Ich würde gerne einen Komponententest durchführen, bei dem sich eine Konstante geringfügig von der Standardversion unterscheidet. Das heißt, in meinem Standardmodul ist das Folgende

%Vor%

Aber beim Testen möchte ich stattdessen diese Zeile ausprobieren:

%Vor%

Ich möchte das erreichen, ohne den Rest des Moduls zu kopieren. Was ich wirklich will, ist ein "Standard" -Modul, das "unterhalb" eines spezialisierteren Moduls ist, so dass im Konfliktfall das spezialisierte Modul gewinnt (anstatt eine Ausnahme auszulösen, was Guice tut).

Im Wesentlichen lautet meine Frage: Wie arrangiert jemand mehr als ein Modul ohne viel Codeverdoppelung?

Update : Ich habe erkannt, dass die Lösung in diesem Anwendungsfall wirklich eine Fabrik statt einer Konstante ist. Ich wäre dennoch interessiert zu erfahren, ob es überhaupt so etwas wie Hierarchien von Modulen gibt.

    
nes1983 24.05.2010, 21:29
quelle

1 Antwort

10

Wenn Sie Guice richtig verwenden, sollten Sie Guice in Tests (insbesondere Komponententests ... Integration und End-to-End-Tests, ja) nicht unbedingt verwenden. Jedenfalls:

Ich bin mir nicht sicher, ob ich verstehe, was Sie versuchen oder was genau das Problem ist, aber ... Sie wissen, dass Sie beim Erstellen von Injector eine beliebige Anzahl von Module s angeben können, richtig ? Das ist ein wichtiger Teil der Verwendung von Guice. Machen Sie die Module so natürlich oder feinkörnig, wie Sie möchten. Du könntest ein NumberOfPlayersModule haben, das nur diese eine Bindung hat, und dann manchmal ein anderes Modul mit einer anderen Bindung verwenden (wie für deinen Test). Sie könnten auch ein Modul erstellen, das ein Konstruktorargument verwendet und das Modul als new NumberOfPlayersModule(4) oder new NumberOfPlayersModule(2) erstellt, wie Sie möchten.

Es gibt noch eine weitere Funktion von Guice, mit der Sie Bindungen in einem oder mehreren Modulen mit Bindungen von einem oder mehreren anderen Modulen überschreiben können. Das funktioniert so:

%Vor%

Wie Sie sehen können, gibt es wirklich viele Möglichkeiten, um die Konfiguration Ihrer Anwendung zu vereinfachen.

    
ColinD 24.05.2010, 22:42
quelle

Tags und Links