Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #12978
| From | "Christian H. Kuhn" <qno-news@qno.de> |
|---|---|
| Newsgroups | de.comp.lang.java |
| Subject | Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle |
| Date | 2016-07-08 16:05 +0200 |
| Message-ID | <du9qajFt4ctU1@mid.individual.net> (permalink) |
| References | <du7ob7Fecu7U1@mid.individual.net> |
Zwischenspiel.
Am 07.07.2016 um 21:19 schrieb Christian „Ingrid“ Kuhn:
> In der Folge ist entsprechend die Testabdeckung, die von JaCoCo
> ermittelt wird, entsprechend niedrig.
JaCoCo war das Mittel der Wahl, weil es von EclEmma benutzt wird und
somit in Eclipse zur Verfügung steht. Es scheint nicht das beste Mittel
zu sein:
public class Rumspiel {
private enum Possibilities {
A, B;
}
private Possibilities poss;
public Rumspiel() {
poss = Possibilities.A;
}
public void setPoss(final boolean _poss) {
if (_poss) {
poss = Possibilities.A;
} else {
poss = Possibilities.B;
}
}
public void aMethod() {
switch (poss) {
case A:
System.out.println("Fall A");
break;
case B:
System.out.println("Fall B");
break;
}
}
}
Ein default in der Switch-Anweisung wäre unerreichbarer Code; andere
Möglichkeiten als A und B können nicht vorkommen. Insbesondere kann poss
nicht null sein, das wird durch Konstruktor und setPoss verhindert. Ohne
Default behauptet JaCoCo aber, dass nur 2 von 3 Branches abgedeckt sind.
Lösbar ist das Problem, dass einer der cases zum default deklariert
wird. Das vermindert aber zumindest die Lesbarkeit des Codes; und ich
behaupte einfach mal, dass auch die Wartbarkeit leidet, weil ich bei
einer möglichen späteren Erweiterung des enum, das vielleicht inzwischen
in ein anderes Package ausgelagert wurde, nicht mehr sofort erkennen
kann, dass default eben nicht default, sondern ein ganz konkreter case ist.
Google kennt das Problem, aber nicht die Lösung. Sourcen ändern, um bei
gleicher Funktionalität Tests zu erfüllen, ist wohl kein guter Gedanke.
Den Branch-Schwellenwert, der für einen grünen Build erreicht werden
muss, abzusenken kann auch keine Lösung sein, denn der erträgliche Wert
hängt zu sehr von der Anzahl der switch- zu sonstigen Verzweigungen ab.
Bleibt ein anderes Tool. Eines, das mit Maven, Gradle und Jenkins
zusammenarbeitet. Ich bin auf Serenity, Cobertura und das proprietäre
Clover gestoßen, JCov scheint sich mit CI-Tools nicht zu vertragen. Was
benutzt ihr? Und mit welchen Erfahrungen?
TIA
QNo
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-07 21:19 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Peter <peter@localhost.com> - 2016-07-07 22:37 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Michael Paap <feunews@mpaap.de> - 2016-07-07 23:21 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-08 14:09 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Wanja Gayk <brixomatic@yahoo.com> - 2016-07-08 22:10 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Patrick Roemer <sangamon@netcologne.de> - 2016-07-09 00:17 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Wanja Gayk <brixomatic@yahoo.com> - 2016-07-18 00:33 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-18 01:01 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Patrick Roemer <sangamon@netcologne.de> - 2016-07-19 10:58 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Wanja Gayk <brixomatic@yahoo.com> - 2016-07-21 00:07 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 14:09 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Patrick Roemer <sangamon@netcologne.de> - 2016-07-08 00:28 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-08 14:13 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-08 16:05 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Wanja Gayk <brixomatic@yahoo.com> - 2016-07-08 22:35 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Patrick Roemer <sangamon@netcologne.de> - 2016-07-09 00:01 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-11 00:40 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:25 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 00:12 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle Wanja Gayk <brixomatic@yahoo.com> - 2016-07-08 21:57 +0200
Re: Unit-Tests von Einheiten ohne öffentliche Leseschnittstelle "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-11 01:13 +0200
csiph-web