12 Stimmen

Sollten Domänenobjekte und einfache JavaBeans einheitlich getestet werden?

Sollten einfache JavaBeans, die nur einfache Getter und Setter haben, unitgetestet werden?

Wie wäre es mit Beans mit einer gewissen Logik in Gettern und Settern?

25voto

Garth Gilmour Punkte 10840

Sie sollten keine Tests schreiben, die:

  • Testen Sie die Sprache oder die IDE (d.h. automatisch generierte Getter und Setter)
  • Sie fügen Ihrem Test-Kabelbaum keinen Wert hinzu und töten Ihre Begeisterung für Unit Testing

Das Gleiche gilt für .NET-Objekte, die nur über Eigenschaften verfügen (manchmal als "Info"-Objekte bezeichnet).

In einer idealen Welt würden Sie eine 100%ige Testabdeckung haben, aber in der Praxis wird dies nicht der Fall sein. Geben Sie also das Geld des Kunden dort aus, wo es den größten Nutzen bringt, d.h. beim Schreiben von Tests für Klassen mit komplexem Zustand und Verhalten.

Wenn Ihre JavaBean interessanter wird, können Sie natürlich später einen Testfall hinzufügen. Eines der häufigsten Probleme im Zusammenhang mit Unit Testing / TDD ist der Irrglaube, dass alles beim ersten Mal perfekt sein muss.

6voto

Glyph Punkte 30137

Wenn es sich nicht lohnt, es zu testen, lohnt es sich nicht, es zu schreiben.

Das bedeutet nicht immer, dass Sie Tests schreiben sollten. Manchmal bedeutet es, dass Sie Code löschen sollten. Brauchen Sie diese Bohnen? Tun sie tatsächlich etwas Wichtiges? Wenn Sie sie brauchen, sollten Sie Tests schreiben. Wenn nicht, löschen Sie den Code und leben Sie glücklicher in dem Wissen, dass Sie weniger zu warten haben.

4voto

Maxim Ananyev Punkte 690

Ich denke, das ist eine der Fragen, die sich jeder stellt.

Aber bedenken Sie: Die innere Logik der Accessors ist jetzt noch sehr einfach, aber sie kann sich in der Zukunft ändern, und - was noch viel wichtiger ist - Sie werden das Gefühl haben, sie beliebig ändern zu können, wenn Sie Tests für die Methoden haben. Sie erhalten also Freiheit und Vertrauen durch ein paar Testfälle. Hört sich nach einem guten Geschäft an, nicht wahr?

4voto

Andrew Swan Punkte 12997

Eine weitere Faustregel (ähnlich wie die von anderen) lautet: "Testen Sie alles, was möglicherweise kaputt gehen könnte". Für mich schließt das automatisch generierte Getter und Setter aus, aber schließt handgeschriebene ein, die eine gewisse Logik enthalten.

3voto

marcospereira Punkte 11795

Wie können Sie ungetesteten Code sicher refaktorisieren? Was wird passieren, wenn sich Ihr Bean-Pojo ändert, wenn Sie keine Tests haben? Erstellen Sie eine Anämisches Domänenmodell ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X