Update ohne Probleme. JUnit Test läuft, was will man mehr… „Quicktest: Neue Version Eclipse 2021‑03 veröffentlicht – Better Than Ever“ weiterlesen
Rätsel des Tages: Warum läuft der JUnit 5 Test nicht und zeigt eine Message Box an?
Warum wird beim ausführen dieses JUnit 5 Tests die Fehlermeldung angezeigt, das kein Test vorhanden ist?
Es ist nicht die fehlende @Test Annotation, die wird bei einem @ParameterizedTest nicht gebraucht.
Die Lösung …
„Rätsel des Tages: Warum läuft der JUnit 5 Test nicht und zeigt eine Message Box an?“ weiterlesen
JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden?
Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden? Ab JUnit 5.4 geht das mit der Annotation @TestMethodOrder
Es wird nur die @TestMethodOrder(MethodOrderer.Alphanumeric.class) Annotation an der jeweiligen Test-Klasse benötigt. Mit dem Alphanumeric wird die Reihenfolge auf alphabetischer gesetzt. „JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden?“ weiterlesen
Neue M1 Version von JUnit 5.4.0 veröffentlicht
Es wurde vorgestern eine neue Version von JUnit 5 veröffentlicht,
siehe https://junit.org/junit5/docs/5.4.0-M1/release-notes/
Mindmap zum Thema „Neue M1 Version von JUnit 5.4.0 veröffentlicht“ weiterlesen
Jubiläum: 20 Jahre Homepage wenzlaff.de!
Heute vor 20 Jahren, am 1.12.1998 ging die Domain wenzlaff.de zum ersten mal ans Netz. Wie die Zeit vergeht.
Es war eine statische Webseite mit Freeware und Sprüche Datenbank mit Newsletter und einigen C++ und Java Programmen zum kostenlosen Download aus meiner Hand. Hier ein etwas unvollständiges Bildschirmfoto, mehr habe ich leider nicht mehr gefunden:
Aber auch schon lange vor dieser Zeit, hatte ich eine Homepage, die aber dann auf den Servern der UNI-Bremen kostenlos gehostet wurde. Da hatte ich als Informatiker einen Zugang mit Akustikkoppler mit 300 Baud und Lochkarten hatten wir da auch noch. Das war wenigstens etwas zum anfassen, batches mit Lochkarten schreiben, cool!
Und es gab keine Werbung im Internet.
Die schöne alte Zeit. Und in der Zwischenzeit gab es immer mal neue Technologie. Vom statischen html zum xhtml und JavaScript über einen eigenen Java html Generator mit Templates bis heute zu den Content-Management-System mit eigener Datenbank.
Bis heute konnte ich auch auf dieser Webseite immer auf Werbung verzichten. Juhu …
Wie soll es weiter gehen? Gibt es noch Themen nach über 1000 Beiträgen? Ideen habe ich noch genug, was fehlt ist die Zeit!
In diesem Sinne, vielen Dank an alle Leser und für das viele Feedback (die über 1000 Kommentare mit Kommentarfunktion habe ich ja abgeschaltet…DSGVO läßt grüßen) das auch nach wie vor erwünscht ist, aber eben über E-Mail 😉
JUnit 5: Class Assumptions vs. Assertions – org.junit.jupiter.api – Behauptungen – Annahme – założenia – допущения -假設 – الافتراضات
In JUnit 5 gibt es im Package org.junit.jupiter.api
die Klasse Assumptions
(Annahme).
Die Assumptions Klasse ist eine Sammlung von Util-Methoden. Im Gegensatz zu den Assertions
(Behauptungen) wird die Assumptions im Fehlerfall nicht mit einem failure (graues Kreuz) sondern mit einem Error (rot) markiert.
Deshalb ist es manchmal gewünscht, wenn z.B. eine Bestimmte Umgebung nicht vorhanden ist, das dann der Test nicht als Error (rot) sondern mit einen grauen Kreuz (Failures) markiert wird. Dann sollte man also die org.junit.jupiter.api.Assertions
verwenden wie diese Testklasse zeigt:
Hier der Quellcode „JUnit 5: Class Assumptions vs. Assertions – org.junit.jupiter.api – Behauptungen – Annahme – założenia – допущения -假設 – الافتراضات“ weiterlesen
Kaum ist man im Urlaub, erscheint nicht der Raspberry Pi 4 oder 5 sondern das GA Release von JUnit 5
Nun ist endlich das finale GA Release 5.0 veröffentlicht worden. Diese Änderungen sind in der pom.xml nötig, und schon läuft es mit JUnit 5.
„Kaum ist man im Urlaub, erscheint nicht der Raspberry Pi 4 oder 5 sondern das GA Release von JUnit 5“ weiterlesen
Junit 5 History oder „Was bisher geschah …“ unter Eclipse (Oxygen)
Manchmal möchte man sehen, wie der vorletzte Testlauf abgelaufen ist. Man kann defaultmäßig die letzten 10 Testläufe wieder zur Anzeige bringen über: „Junit 5 History oder „Was bisher geschah …“ unter Eclipse (Oxygen)“ weiterlesen
Java: Reihenfolge der Testmethoden mit FixMethodOrder in JUnit festlegen
JUnit Testmethoden sollten so geschrieben werden, das sie unabhängig von anderen Methoden sind. Die Reihenfolge der ausführung der Test-Methoden in einer Testklasse ist auch nicht garantiert und kann von lauf zu lauf unterschiedlich sein. Das ist auch gut so.
Manchmal möche man aber dennoch eine bestimmte Reihenfolge. Dies kann seit JUnit 4.11 mit der @FixMethodOrder(MethodSorters.NAME_ASCENDING Annotation durchgeführt werden.
Die Testklasse wird einfach mit der @FixMethodOrder(MethodSorters.NAME_ASCENDING markiert. Z.B.
Ohne ist die Ausführung z.B.:
Und mit Annotation z.B.:
CSV Testdaten Generator (Oder wer testet ist feige? NEIN) und mehr Tools für CSV to …
Mit dem CSV-Testdaten-Generator kann schnell und einfach jegliche Art von Testdaten erzeugt werden. Die dann leicht in JUnit und sonstwie weiterverwendet werden können.
Auch andere gute Tools für die Bearbeitung von CSVs sind dort zu finden. z.B.
- Convert CSV To Delimited – reformat, filter, and sort delimited data
- Convert CSV To Fixed Width or ASCII Table
- Convert CSV To GeoJSON
- Convert CSV To HTML Table or MediaWiki Table New
- Convert CSV To JSON
- Convert CSV To KML
- Convert CSV To Multi-line Data
- Convert CSV To SQL
- Convert CSV To XML
- Convert CSV To YAML
- Pivot CSV Tool
- Convert Fixed Width To CSV
- Convert GeoJSON To CSV
- Convert HTML Table To CSV
- Convert JSON To CSV
- Convert SQL To CSV
- Convert XML To CSV
- Convert YAML To CSV
Z.B. geben wir in der Eingabe Zeile folgende Schlüsselwörter an:
seq; first; last; name; email; latitude; longitude; domain; string
Wählen noch die Anzahl der zu erzeugenden Datensätze, z.B. 10 und klicken auf „Generate Test Data“.
Schon werden die Testdaten erzeugt, z.B.:
1 2 3 4 5 6 7 8 9 10 11 |
[seq;first;last;name;email;latitude;longitude;domain;string 1;Nevaeh;Flores;Layla Patton;funbecev@rud.gov;-37.83501;85.51261;es.com;X96yT8Ti*c10n2*Tq2$ 2;Raymond;Castillo;Madeline Austin;hewit@fedbi.net;-37.34585;81.91501;wiz.io;D%0B9 3;Alex;Vega;Tucker Harris;fedwicro@jizpusi.io;50.22157;80.15615;pehuflir.edu;VUXsuoQ^ 4;Emery;Chapman;Ruby Blake;sehudguj@havbeawi.edu;63.62601;177.62135;iwnego.co.uk;bqa6xwK1jHm 5;Ayla;Price;Alice Turner;are@ona.co.uk;71.88833;65.1077;usfevog.edu;UgHl&lqo*WA16B 6;Eden;Ortega;Presley Hunter;isozba@funoco.io;24.01598;15.27323;cuasve.gov;$R!hvnwUABHppwsN 7;Eva;Higgins;Paige Guzman;se@dok.com;69.97058;168.30766;ton.net;imsoYdGG7 8;Jaden;Maxwell;Amir Powell;keruduf@ig.co.uk;13.61097;109.48138;iwo.net;*LtbS&2g] 9;Bryson;Wood;Olivia Mathis;nofha@ufefic.edu;27.57553;144.73931;ozoum.co.uk;^L9gNMr 10;Gabriel;West;Esther Bush;mefzule@et.org;-9.7853;130.91952;ipebuake.net;6BK[GKSfz(c!v^] |
Mit klick auf „Save to Disk
“ können die Testdaten in eine Datei gespeichert werde.
Die Testdaten werden auf dem Client erzeugt, und werden also nicht an den Hersteller der Seite gesendet.
Nun können wir die CSV Testdaten auch in eine HTML Tabelle umwandeln, hier nur die Spalten 1,2,3 eingegeben:
[seq | first | last |
---|---|---|
1 | Nevaeh | Flores |
2 | Raymond | Castillo |
3 | Alex | Vega |
4 | Emery | Chapman |
5 | Ayla | Price |
6 | Eden | Ortega |
7 | Eva | Higgins |
8 | Jaden | Maxwell |
9 | Bryson | Wood |
10 | Gabriel | West |
Wer die CSV dann in XML umwandel möcht, kann dies auch leicht mit dem CSV to XML Converter tun. Hier mal die CSV die oben generiert wurde:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
<?xml version="1.0"?> <ROWSET> <ROW> <FIELD1>1</FIELD1> <FIELD2>Nevaeh</FIELD2> <FIELD3>Flores</FIELD3> <FIELD4>Layla Patton</FIELD4> <FIELD5>funbecev@rud.gov</FIELD5> <FIELD6>-37.83501</FIELD6> <FIELD7>85.51261</FIELD7> <FIELD8>es.com</FIELD8> <FIELD9>X96yT8Ti*c10n2*Tq2$</FIELD9> <FIELD10></FIELD10> </ROW> <ROW> <FIELD1>2</FIELD1> <FIELD2>Raymond</FIELD2> <FIELD3>Castillo</FIELD3> <FIELD4>Madeline Austin</FIELD4> <FIELD5>hewit@fedbi.net</FIELD5> <FIELD6>-37.34585</FIELD6> <FIELD7>81.91501</FIELD7> <FIELD8>wiz.io</FIELD8> <FIELD9>D%0B9</FIELD9> <FIELD10></FIELD10> </ROW> <ROW> <FIELD1>3</FIELD1> <FIELD2>Alex</FIELD2> <FIELD3>Vega</FIELD3> <FIELD4>Tucker Harris</FIELD4> <FIELD5>fedwicro@jizpusi.io</FIELD5> <FIELD6>50.22157</FIELD6> <FIELD7>80.15615</FIELD7> <FIELD8>pehuflir.edu</FIELD8> <FIELD9>VUXsuoQ^</FIELD9> <FIELD10></FIELD10> </ROW> <ROW> <FIELD1>4</FIELD1> <FIELD2>Emery</FIELD2> <FIELD3>Chapman</FIELD3> <FIELD4>Ruby Blake</FIELD4> <FIELD5>sehudguj@havbeawi.edu</FIELD5> <FIELD6>63.62601</FIELD6> <FIELD7>177.62135</FIELD7> <FIELD8>iwnego.co.uk</FIELD8> <FIELD9>bqa6xwK1jHm</FIELD9> <FIELD10></FIELD10> </ROW> <ROW> <FIELD1>5</FIELD1> <FIELD2>Ayla</FIELD2> <FIELD3>Price</FIELD3> <FIELD4>Alice Turner</FIELD4> <FIELD5>are@ona.co.uk</FIELD5> <FIELD6>71.88833</FIELD6> <FIELD7>65.1077</FIELD7> <FIELD8>usfevog.edu</FIELD8> <FIELD9>UgHl&amp</FIELD9> <FIELD10>lqo*WA16B</FIELD10> </ROW> <ROW> <FIELD1>6</FIELD1> <FIELD2>Eden</FIELD2> <FIELD3>Ortega</FIELD3> <FIELD4>Presley Hunter</FIELD4> <FIELD5>isozba@funoco.io</FIELD5> <FIELD6>24.01598</FIELD6> <FIELD7>15.27323</FIELD7> <FIELD8>cuasve.gov</FIELD8> <FIELD9>$R!hvnwUABHppwsN</FIELD9> <FIELD10></FIELD10> </ROW> <ROW> <FIELD1>7</FIELD1> <FIELD2>Eva</FIELD2> <FIELD3>Higgins</FIELD3> <FIELD4>Paige Guzman</FIELD4> <FIELD5>se@dok.com</FIELD5> <FIELD6>69.97058</FIELD6> <FIELD7>168.30766</FIELD7> <FIELD8>ton.net</FIELD8> <FIELD9>imsoYdGG7</FIELD9> <FIELD10></FIELD10> </ROW> <ROW> <FIELD1>8</FIELD1> <FIELD2>Jaden</FIELD2> <FIELD3>Maxwell</FIELD3> <FIELD4>Amir Powell</FIELD4> <FIELD5>keruduf@ig.co.uk</FIELD5> <FIELD6>13.61097</FIELD6> <FIELD7>109.48138</FIELD7> <FIELD8>iwo.net</FIELD8> <FIELD9>*LtbS&amp</FIELD9> <FIELD10>2g]</FIELD10> </ROW> <ROW> <FIELD1>9</FIELD1> <FIELD2>Bryson</FIELD2> <FIELD3>Wood</FIELD3> <FIELD4>Olivia Mathis</FIELD4> <FIELD5>nofha@ufefic.edu</FIELD5> <FIELD6>27.57553</FIELD6> <FIELD7>144.73931</FIELD7> <FIELD8>ozoum.co.uk</FIELD8> <FIELD9>^L9gNMr</FIELD9> <FIELD10></FIELD10> </ROW> <ROW> <FIELD1>10</FIELD1> <FIELD2>Gabriel</FIELD2> <FIELD3>West</FIELD3> <FIELD4>Esther Bush</FIELD4> <FIELD5>mefzule@et.org</FIELD5> <FIELD6>-9.7853</FIELD6> <FIELD7>130.91952</FIELD7> <FIELD8>ipebuake.net</FIELD8> <FIELD9>6BK[GKSfz(c!v^x</FIELD9> <FIELD10></FIELD10> </ROW> </ROWSET> |
Oder mal eben 1000 Passwörter die 20 Stellen haben generieren mit:
seq,string(20)
1 2 3 4 5 6 7 8 9 10 11 12 |
seq,string 1,6W50kn@61erS8r%5iPH5 2,RsAUg%3fa0#dM)$si9f1 3,[8aVDuuV#qo$U]If[vdx 4,)vfY$S7MMJrJ8hGLsG40 5,M92Ir1IZE#JxzIep)47T 6,Jj9uqhd@D2Yt&iDNEdN) 7,X0RU[l6sSnZq[zFnAavy 8,1ZZgdvuNNLBi6HC28$)7 9,p*dV^82rW&o0iK]ltA*[ ... 1000,JT*0PBq&dzaCBrB#G2cQ |
Weitere Ideen?
JUnit 4.12 erschienen
Nach über 2 Jahren ist nun eine neue Version von JUnit veröffentlicht worden. Die Releasenotes sind auf Github zu finden. In folgenden Bereichen gab es Ergänzungen:
- Assertions
- Command-line options
- Test Runners
- Exception Testing
- Timeout for Tests
- Parameterized Tests
- Rules
- Theories
- Categories
- Use with Maven
- Miscellaneous
Ok, dann mal gleich das aktuelle Maven Projekt TWFlug auf die neue Version 4.12 angepasst:
1 2 3 4 5 6 7 8 9 10 |
<properties> <junit.version>4.12</junit.version> </properties> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> |
Mehr über JUnit oder drei Gründe warum man keine JUnit-Tests schreiben sollte.
Top 4 Mindmap zum Thema Test-Tools
SelBlocks für Selenium installieren oder „Wer testet ist feige“
Das Plug-In SelBlocks für die Selenium IDE darf nicht fehlen. Also über diese Seite installieren und den Browser neu starten:
Das Plugin ist eine Erweiterung für die Selenium IDE und fügt der IDE die folgenden doch immer nötigen Befehle hinzu:
- if, elseIf, else
- try, catch, finally, throw
- for, foreach, while, continue, break
- call, function, return
- loadJsonVars, loadXmlVars, forJson, forXml
- exitTest
Die Selenium IDE muss natürlich vorhanden sein:
Eine ausführliche Beschreibung und auch Beispielen sind auf dieser Seite zu finden.
JUnit
Drei Gründe warum man keine JUnit-Tests schreiben sollte (Mindmap).
Wie geht ein Quickinstall von MiniPwner auf einem laufenden OpenWrt Version 12 mit ext. Usb-Stick?
Installation von MiniPwner auf einer lauffähigen OpenWrt Version mit externen USB-Stick. Einfach auf der Konsole folgende Befehle absetzen:
opkg update
opkg install http://minipwner.com/20120514/downloads.openwrt.org/snapshots/trunk/ar71xx/packages/dsniff_2.4b1-2_ar71xx.ipk
opkg install luci-theme-bootstrap mc htop iftop ettercap tar openssh-sftp-client mdk3 nmap tcpdump aircrack-ng aircrack-ptw kismet-client kismet-server perl openvpn nbtscan snort karma samba36-client elinks yafc
Kostenloses E-Book über Testgetriebene Entwicklung mit JUnit und Fit ’ness‘
Auf dieser Seite von Frank Westphal gibt es das E-Book „Testgetriebenen Entwicklung mit JUnit und Fit“ kostenlos zum download im PDF-Format.
Es ist immer noch sehr aktuell.
Vielen Dank für die kostenlose Bereitstellung.
Kennt ihr noch weitere gute kostenlose E-Books? Dann hinterlasst bitte hier einen Kommentar.
Test F.I.R.S.T. Mindmap für Entwickler und Berater nicht nur mit JUnit
JUnit Test vs. Clean Code
Hat das sich der Mac OS X einen Flashback Virus eingefangen?
Im Terminal kann man das schnell testen, einfach:
defaults read /Applications/Safari.app/Contents/Info LSEnvironment
eingeben und RETURN drücken und
defaults read ~/.MacOSX/environment DYLD_INSERT_LIBRARIES
und RETURN. Es muss wenn alles ok ist, jeweils folgende Antwort geliefert werden:
"The domain/default pair of (...) does not exist"
Java 7 ist DA!
So, jetzt ist Java 7 da. Was braucht man zum ausprobieren?
Eine Eclipse Version die Java 7 unterstützt. Das geht noch nicht mit Helios. Deshalb einen „Nightly Build“ herunterladen.
Dann über Update neue Software über diese URL den JDK 7 patch herunterladen.
Was dann noch fehlt ist das JDK 7 von Oracle.
In den Projekt Einstellungen unter Java Compiler die 1.7 auswählen und nun der erste Test.
In Java 1.7 sind jetzt Unterstriche (_) in Literalen möglich, um besser zu gliedern z.B.
1 2 3 4 5 6 7 8 9 10 11 12 |
public class TestJava7 { private static long telefonNummer_1 = 11_22_33_44L; private static double telefonNummer_2 = 11_22.3_3d; public static void main(String[] args) { System.out.println("Telefonnummer 1: " + telefonNummer_1); System.out.println("Telefonnummer 2: " + telefonNummer_2); } } |
Das Ergebnis:
Telefonnummer 1: 11223344
Telefonnummer 2: 1122.33
Weitere Neuerungen mit Beispielen wie „String in switch“ kommen hier dann demnächst.
JUnit mit ein assert pro Test
Die Regel, nur eine assert-Anweisung pro Testmethode zu verwenden, mag drakonisch klingen erleichtert aber die Übersicht (siehe Blog von Dave Astels).
Obwohl ich auch keine Angst habe von dieser Regel abzuweichen.
Was ist Eure Meinung? Wer testet ist feige?
IPhone
Cool, jetzt kann ich auch übers IPhone von überall posten 🙂 Und bearbeiten geht auch 😉 Und noch ein paar Plugins ergänzt ua. den Tweet Button.
JUnit – assertEquals
Was ist richtig?
...
String testString = testobjekt.getTestwertAlsString();
// a:
assertEquals("expected", testString);
// oder
// b:
assertEquals(testString, "expected");
„JUnit – assertEquals“ weiterlesen