Gibt es eine Möglichkeit zur Automatisierung junit bean-Eigenschaft testet?
Let ' s face it, schriftlich bean-Eigenschaft tests ist die denkbar schlechteste Umgang mit der Zeit. Aber Sie müssen getan werden.
Zum Beispiel. Wenn die Tests eine String
Eigenschaft für propName
ein Aufruf wie der folgende:
testProperty(target, "propName", String.class);
testProperty(target, "propName", String.class, "expected initial");
Validieren würde, dass:
get
undset
Methoden existieren.- Wenn mit erwarteten Wert einen test zu
get
AnrufeassertEquals
für den angegebenen Wert. - (
get
,is
)/set
Methoden Verhalten sich wie erwartet.
Könnte ich ein schreiben beginnen diese Implementierungen, aber ich möchte wissen, ob es etwas gibt, zur Verfügung, um dies zu erleichtern. Andere optionale Attribute können verwendet werden, um zu überprüfen, dass null
zulässig ist, oder verwenden JSR-303 bean-Validierung zur Validierung das Feld.
- Ist es nicht etwas erschöpfend zu testen, für getter/setter? Ist es erforderlich?
- IMHO ist diese Art des testens sollte vermieden werden. Es wird erzeugen weit mehr Arbeit, als Belohnung, nicht zu erwähnen, eine Tonne von tests, die verwaltet werden müssen.
- Ich bin völlig einverstanden mit Euch beiden. Ich persönlich niemals die getter/setter und verlassen Sie sich auf NetBeans zu erstellen. Immer wenn ich diese ändern, ich lösche vor der getter/setter und regenerieren Sie aus den Bereichen. Aber was ist code coverage?
code-coverage
erreicht werden kann, wenn diese getter/setter sind aufgerufen, in anderen Testfällen!- Ist das nicht die Automatisierung von unit-tests Art zu besiegen Ihren Zweck?
- IMHO keine. Jeder hatte einen bug, da die setter-Einstellung war das argument, anstelle der Instanz-Variablen? Dies ist etwas, was ich schon sehr viel gesehen, wo die Methode könnte in Ordnung sein, aber die Instanz-variable hatte, ein Tippfehler und keine ausdrückliche
this.
in den setter. Ich bin sicher, es gibt noch mehr Beispiele. - Was ist code coverage? Das Ziel der Entwicklung ist nicht zu 100% Abdeckung. Plus, wenn es nicht verwendet wird, in anderen tests, warum halten Sie es? Eine option - Project Lombok. Schreiben Sie nicht den Getter/setter. Nichts zu testen.
- Viele business-entity-beans verwendet werden wird nur von service-Methoden, füllen Sie diese Bohnen. Diese müssen geprüft werden, um sicherzustellen, dass Sie gerade zurückgekehrt von einer mock-Dienst ordnungsgemäß, allerdings ist dies praktisch nur die Prüfung, dass die entity-Eigenschaften arbeiten. Eine Möglichkeit, um zu testen, diese ohne aufwändige und fehleranfällige Prüfungen von Vorteil ist.
- Sie können einen Blick auf die folgenden Bibliotheken, kann es sein, was du suchst: outsidemybox.github.com/testUtils
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt durchaus ein paar bestehende code-Bibliotheken/snippets, die dies erleichtern. Bei einer schnellen Suche fand ich ein paar, die haben Potenzial:
Habe ich jemanden gesehen, nehmen Sie das erste Beispiel habe ich aufgeführt (schön einfach, weil es nur eine einzige Klasse), und ändern Sie es, um besser auf Ihre Bedürfnisse zugeschnitten sind.
Ich denken kann mit der spiegelung wenn Sie wollen, es zu tun manuell
oder finden Sie diese Antwort für commons:
junit test-Methode für die Getter & setter
erstellen Sie eine andere Bohne so wie es aussieht getesteten bean sollte. und dann den apache-commons, festAssert, hamcrest oder andere Frameworks, die das tun, der Vergleich mit der spiegelung. schreiben Sie nicht auf Ihre eigenen, ich bin sicher, es ist bereits getan
Update auf die oben javabean-tester
Es ist ein aktiv Gabel Projekt zu den oben genannten (aber tot) codebox/javabean-tester, die scheint ganz nett...