Die Seite ist Java 6.
Ich habe die ganze Zeit manuelle Tests durchgeführt, aber es gibt Grenzen, oder? Am Ende schrieb ich Testcode und half bei dieser Schätzung.
Ich habe angefangen, JUnit und Mockito zu sammeln, aber ich weiß es nicht. Ich hatte es schwer, weil es zu alt war und ich die Informationen nicht leicht finden konnte.
Sie werden sterben, wenn Sie zu viel technische Schulden haben? Ein Memorandum als Fall.
JUnit 4.11 Apropos Testcode in Java schreiben, JUnit. Das neueste ist JUnit 5, kann jedoch nur mit Java 8 oder höher verwendet werden. Wählen Sie daher aus 4 Serien. Es muss 4.8 oder höher sein, um die später beschriebene @ Rule-Annotation zu verwenden.
assertJ 1.7.1 Assertionsbibliothek.
Weil es ein Schreibstil ist, indem man sich mit einer Methodenkette verbindet Es ist schwer zu werden ((((Klammer Hölle)))) Sie können eine Pompon-Assert-Anweisung gemäß dem Eclipse-Vorschlag schreiben.
Mockito 1.9.5 Eine Bibliothek, die das Implementieren von Testmodellen ziemlich einfach macht. Es scheint als Mohito zu lesen. Für die JUit5-Serie gibt es Mockito 2.x.x, für die JUnit4-Serie scheint die Stabilität 1.9.5 zu sein.
Angenommen, Sie möchten die hogehoge () -Methode der Hoge-Klasse testen. Ob die hogehoge () -Methode von einer anderen Fuga-Klasse abhängt Sie können nicht testen, ohne die Fuga-Klasse vorzubereiten.
Wenn das bei einem Mock der Fall ist "Wenn Sie Fuga # fugafuga () aus der Hoge-Klasse sehen, geben Sie einfach 3 zurück." Kann eingestellt werden. Es ist wichtig, Test in Java zu sagen.
PowerMock 1.5.6 Mockito ist wirklich nützlich, aber Sie können statische Methoden nicht verspotten. PowerMock durch gutes Hacken Sie können statische Methoden ähnlich wie Mockito verspotten. Auch private Methoden.
In dem Bereich, in dem Java seit langem verwendet wird, gibt es auch eine statische Methode Dies ist auch unverzichtbar, weil es schreit (voreingenommen).
Dieser Power Mock und dieses Eclemma, die später beschrieben werden, waren nicht kompatibel und ich hatte es schwer. (In der neuesten Version gelöst)
Ich habe 1.5.6 gewählt, weil Mockito 1.9.x und PowerMock 1.5.x kompatibel sind.
Javassist3.18.2 Javassist ist eine Bibliothek, die beim Spielen mit Java-Bytecode verwendet wird. Java-Bytecode ist die Java-Quelle, die wir geschrieben haben Derjenige, der kompiliert werden kann. Derjenige, der auf der JVM läuft.
PowerMock nutzt dies. Java-Bytecode anstelle der Quelle Es scheint, dass der Schein realisiert wird, indem man ihn gut umschreibt. (Ich kenne die Details nicht und diese Erklärung kann falsch sein)
Javassist 3.4 ist im bestehenden Projekt enthalten. Das war die höchste Priorität. Als ich wütend war, war ich süchtig nach "Was? Du bist dabei?"
QuickJUnit Eclipse-Plug-In zum Schreiben von JUnit. Es gibt verschiedene Verknüpfungen und Vorlagen.
Eclemma 3.0.1 ** Ecl ** ipse + ** EMMA ** Bibliothek. Ein Plug-In zum Ausführen von EMMA, das die Testabdeckung misst, auf Eclipse. Eclemma hat vor langer Zeit aufgehört zu aktualisieren und ich wollte unbedingt JaCoCo verwenden.
Eclemma und PowerMock 1.5.6 sind sehr inkompatibel. Wenn ich einen Test mit PowerMock durchführe, wird eine Abdeckung von 0% angezeigt.
Eclemma betrachtet den Java-Bytecode, den ich gerade beschrieben habe, und sieht, wo er ausgeführt wurde. Ich schaue zu PowerMock (um statische Methoden zu verspotten) Weil (eine Kopie von) diesem Bytecode mit Javassist bearbeitet und ausgeführt wird.
Dieses Problem wurde für Java8, JUnit5 und höher gelöst.
Indem Sie es anstelle von RunWith verwenden Das obige "0% Deckungsproblem" kann vermieden werden.
Referenz: https://code.i-harness.com/ja/q/1647e8c
Das ist alles (denke ich) Ich konnte Testcode für verschiedene Methoden schreiben, ausführen und die Abdeckung messen.
Es ist immer noch gut, weil es Java ist, weil es nur schwer zu finden ist, und wenn Sie danach suchen, wird es herauskommen.
Javassist-Versionskonflikt und PowerMock und Eclemma "0% Deckungsproblem"
Indirekt, weil die Eclipse-Version zu alt ist und sich kein Maven in der Entwicklungsumgebung befindet Es war sehr mühsam, Plug-Ins und Bibliotheken zu installieren, und es gab Probleme.
Auch wenn es eins nach dem anderen ein triviales Problem ist Wenn mehrere Vorkommen auftreten, erhöht sich die für die Auflösung erforderliche Zeit sofort.
Für JUnit 5 und höher wurde das Problem "0% Abdeckung" von PowerMock und Eclemma gelöst.
Mit anderen Worten, es wurde vor zwei Jahren in der Welt gelöst. Wenn Sie also jetzt mit diesen beiden Schlüsselwörtern umgehen, Die Art und Weise, RunWith zu schreiben, die die Regelanmerkung nicht verwendet, ist erfolgreicher. (Es scheint ärgerlich zu sein, in Regel zu schreiben)
Es fiel mir schwer, daraus ein Verfahren zu machen, aber diese Test-Framework-Gruppe Ich weiß nicht, ob es wie vorgeschlagen angenommen wird.
Vor allem wird gesagt, dass "100% Deckung unerlässlich ist", also habe ich ein schlechtes Gefühl.
"Das Schreiben eines Tests braucht Zeit, also machen wir einen manuellen Test." Ich bin zu dem Schluss gekommen.
Was für ein Urteil! Ich meine, ich mache einen manuellen Testfall! Ich hasse es! !!
Recommended Posts