Ich beschäftige mich gerade mit Guice für Dependency Injection und TDD. Jetzt stehe ich aber vor einer Frage, die ich selbst mit Google nicht beantworten konnte.
Als Lernprojekt für Guice und TDD habe ich mich mal wieder an eine GameOfLife-Implementierung gesetzt. Ich habe ein paar Interfaces (GameOfLife, Rule, CellGrid etc pp) und dahinter immer eine DefaultXXX-Implementierung.
Jetzt zu meiner Unsicherheit: Pro Interface einen Test (z.B. GameOfLifeTest), in den ich die zu testende Implementierung injiziere über eine Modul oder pro DefaultXXX-Klasse einen Test?
Eigentlich, denke ich, ist die erste Variante richtig. Aber: Was ist, wenn es für ein Interface mehrere Implementierungen gibt. Ist es dann besser, mehrere Module zu definieren, womit Guice die Abhängigkeiten auflösen kann, oder mehrere Test-Klassen (pro Implementierung eines Interfaces eine Testklasse)? Bei der ersten Variante mit mehreren Modulen stellt sich mir dann aber sofort die nächste Frage: Wie wäre es dann möglich eine Test-Klasse nacheinander mit mehrere Modulen aufzurufen? (Geht doch nur über eine zusätzliche Test-Klasse "TestAllImplementationsOfXXX"?)
Hui, sind doch einige Fragen geworden. Für Anregungen und BestPractice-Tipps wäre ich dankbar.
Als Lernprojekt für Guice und TDD habe ich mich mal wieder an eine GameOfLife-Implementierung gesetzt. Ich habe ein paar Interfaces (GameOfLife, Rule, CellGrid etc pp) und dahinter immer eine DefaultXXX-Implementierung.
Jetzt zu meiner Unsicherheit: Pro Interface einen Test (z.B. GameOfLifeTest), in den ich die zu testende Implementierung injiziere über eine Modul oder pro DefaultXXX-Klasse einen Test?
Eigentlich, denke ich, ist die erste Variante richtig. Aber: Was ist, wenn es für ein Interface mehrere Implementierungen gibt. Ist es dann besser, mehrere Module zu definieren, womit Guice die Abhängigkeiten auflösen kann, oder mehrere Test-Klassen (pro Implementierung eines Interfaces eine Testklasse)? Bei der ersten Variante mit mehreren Modulen stellt sich mir dann aber sofort die nächste Frage: Wie wäre es dann möglich eine Test-Klasse nacheinander mit mehrere Modulen aufzurufen? (Geht doch nur über eine zusätzliche Test-Klasse "TestAllImplementationsOfXXX"?)
Hui, sind doch einige Fragen geworden. Für Anregungen und BestPractice-Tipps wäre ich dankbar.