Als Referenz - http://en.wikipedia.org/wiki/Single_responsibility_principle
Ich habe ein Testszenario, in dem in einem Anwendungsmodul die Erstellung von Ledger-Einträgen durchgeführt wird. Es gibt drei grundlegende Aufgaben, die ausgeführt werden könnten:
- Zeigen Sie vorhandene Ledger-Einträge im Tabellenformat an.
- Legen Sie über die Schaltfläche Anlegen einen neuen Sachkonteneintrag an.
- Klicken Sie auf einen Ledger-Eintrag in der Tabelle (im ersten Zeiger erwähnt) und sehen Sie sich die Details auf der nächsten Seite an. Sie können einen Ledger-Eintrag auf dieser Seite ungültig machen.
(Auf jeder Seite gibt es noch ein paar Operationen / Validierungen, aber der Kürze halber werde ich es auf diese beschränken.)
Also habe ich beschlossen, drei verschiedene Klassen zu erstellen -
- LedgerLandingPage
- CreateNewLedgerEntryPage
- ViewLedgerEntryPage
Diese Klassen bieten die Dienste an, die auf diesen Seiten ausgeführt werden könnten, und Selentests verwenden diese Klassen, um die Anwendung in einen Zustand zu versetzen, in dem ich bestimmte Behauptungen aufstellen könnte.
Als ich es mit einem meiner Kollegen besprechen ließ, war er überfordert und bat mich, eine einzige Klasse für alle zu machen. Obwohl ich das Gefühl habe, dass mein Design sehr sauber ist, bezweifle ich, dass ich das Prinzip der Einzelverantwortung übertrieben verwende