Unit-Tests mit Sensei und AssertJ lesbar machen
Unit-Tests mit Sensei und AssertJ lesbar machen
![](https://cdn.prod.website-files.com/5fec9210c1841a6c20c6ce81/63e39c37c7605a217e7bde71_618e1006e8212f833836ee02_JodaTime%2520Blog%2520Main%2520Image.webp)
![](https://cdn.prod.website-files.com/5fec9210c1841a6c20c6ce81/63e39c37c7605ac2887bde70_61a6e2c30633b4943f0a2a52_JodaTime%2520-%2520Thumbnail.webp)
Entwickler erstellen und testen ihren eigenen Code mit verschiedenen Methoden. Eine dieser Methoden sind Unit-Tests - eine sehr beliebte Methode zum Testen der kleinsten Teile des eigenen Codes. Wenn sie gut geschrieben sind, können Unit-Tests dazu beitragen, die Qualität Ihres Codes zu verbessern sowie Kosten und Entwicklungszeit zu reduzieren. Unabhängig davon, ob sie im Rahmen der testgetriebenen Entwicklung (TDD) durchgeführt werden oder nicht, sind Unit-Tests ein wichtiger Bestandteil der modernen Entwicklungspraktiken, und ihre Bedeutung hat zur Schaffung zahlreicher Test-Frameworks geführt.
Ohne ein geeignetes Test-Framework und eine entsprechende Anleitung können Unit-Tests jedoch komplex und unleserlich werden, da der Schwerpunkt eher auf Abdeckung und Quantität als auf Qualität und Lesbarkeit liegt. Dies gilt insbesondere für eine große und aktive Codebasis mit vielen Unit-Tests.
Ein gutes Test-Framework hilft bei der Erstellung gut lesbarer Tests, die einfach sind und sich auf Qualitätstests konzentrieren. Sie helfen auch dabei, die Art und Weise zu dokumentieren, wie Ihr Code zu verwenden ist. Ein solches Framework ist AssertJ.
AssertJ ist eine fließende API zum Schreiben von Unit-Tests in Java. Mit ihr können Sie Testbehauptungen schreiben, die sich wie Englisch lesen, mit kontextabhängiger Autovervollständigung. Wenn Sie eine große Anzahl von Tests haben und deren Lesbarkeit verbessern müssen, möchten Sie vielleicht alle zu AssertJ migrieren und sicherstellen, dass alle zukünftigen Tests die Vorteile von AssertJ nutzen.
Eine vollständige Migration kann jedoch einen enormen Aufwand und viel Zeit in Anspruch nehmen und wird daher oft übersprungen oder zugunsten anderer Entwicklungsaufgaben aufgeschoben. Deshalb haben wir Sensei entwickelt - ein hochgradig anpassbares IntelliJ-Plugin, das Ihnen helfen kann, Ihre aktuellen Unit-Tests auf AssertJ zu migrieren und alle zukünftigen Tests auf die richtige Weise zu schreiben. Dies geschieht mit einer Reihe von Rezepten (Regeln), die das Entwicklungsteam von Senseibereits für Sie erstellt hat. Sensei macht es einfach, eine einmalige Migration durchzuführen oder den Ansatz einer schrittweisen Migration zu AssertJ zu wählen, einen Test nach dem anderen. Nach der Umstellung auf AssertJ helfen die Rezepte den Entwicklern weiterhin bei der Anwendung von Schnellkorrekturen, während sie Unit-Tests schreiben, so dass Ihre Unit-Tests weiterhin einheitlich, standardisiert und konsistent über die gesamte Codebasis sind.
![Video zur Einstellung der AssertJ has size rule](https://cdn.prod.website-files.com/5fec9210c1841a6c20c6ce81/62c8286912348cd4de0cf64e_unit-test-coding-guidelines.gif)
Über Sensei
Sensei ist ein hochgradig anpassbares IntelliJ-Plugin zum Scannen und Korrigieren von unerwünschtem Code während der Eingabe - mit Hunderten von herunterladbaren Code-Transformationen und Migrationsrezepten (Regeln) sowie einer eingebauten Möglichkeit, eigene zu erstellen. Mit Sensei können Entwickler schlechte Codemuster während der Eingabe korrigieren, so dass sie qualitativ hochwertigen Code schneller liefern und ihn letztlich in einer konsistenten und standardisierten Art und Weise über Teams und Projekte hinweg schreiben können.
Hier ist ein Beispiel für eine Migration, die Ihnen zeigen könnte, wie Sensei die Migration Ihrer Unit-Tests zur Verwendung von AssertJ vereinfacht.
Warum ist AssertJ ein großartiges Framework zum Schreiben von Unit-Tests
Anstatt einen Test wie diese JUnit-Assertion zu schreiben:
können Sie dies mit AssertJ schreiben:
Das bedeutet, dass Sie die Behauptung wie einen englischen Satz von links nach rechts lesen können, und es ist klar, was die Erwartung ist (in diesem Fall die Größe 3). Wie oft haben Sie schon eine Behauptung falsch herum geschrieben, so wie hier?
Dies sind nur einfache Beispiele. Je komplexer Ihre Prüfungen und Assertions sind, desto mehr hilft Ihnen AssertJ, Ihre Tests einfach und lesbar zu gestalten. Es arbeitet sehr gut mit der Autovervollständigung Ihrer IDE zusammen. Sobald Sie eingeben:
wird je nach Typ von myResult eine Liste mit allen Dingen angezeigt, die Sie überprüfen können. Handelt es sich um eine Auflistung, können Sie den Inhalt, die Größe, den Inhalt bestimmter Werte oder Typen usw. überprüfen.
AssertJ unterstützt von Haus aus Primitive und ihre Boxed Types, Atomic Types, Collections, Arrays, Maps, Dates, java.time, Futures, Files/Paths, InputStreams, Throwables und URLs. Und wenn Sie einen bevorzugten benutzerdefinierten Matcher für Hamcrest haben, können Sie ihn mit AssertJ über HamcrestCondition verwenden.
Lesbare Unit-Tests erleichtern es Entwicklern, den Code in normalem Englisch zu lesen und machen es daher einfach, Fehler zu erkennen und die Abdeckung zu erhöhen - was AssertJ zu einem unverzichtbaren Framework für gute Java Unit-Tests macht.
Rezepte zum Verschieben von Legacy-Unit-Tests nach AssertJ
Wir haben ein Kochbuch geschrieben , um Ihnen zu helfen, konsistenten Code mit AssertJ zu schreiben. Es kann Ihnen helfen, Ihre Assertions von einem der folgenden Frameworks zu AssertJ zu migrieren: JUnit 3, JUnit 4, JUnit 5 und FEST-Assert.
Dieses Kochbuch kann in Sensei zur sofortigen Verwendung konfiguriert werden. Eine Installationsanleitung für Sensei finden Siehier.
Bessere Unit-Tests beim Programmieren schreiben - JUnit-Qualität schrittweise verbessern
Das Sensei Kochbuch für AssertJ hilft Ihnen nicht nur bei der Migration von anderen Frameworks. Es enthält einige Rezepte, die Ihnen helfen können, Ihre Tests zu verbessern, mit alten Gewohnheiten zu brechen und mehr idiomatische AssertJ-Tests zu schreiben.
Nehmen wir zum Beispiel an, Sie haben einen Test geschrieben, der wie folgt aussieht:
Vielleicht haben Sie es sogar mit einem der oben genannten Migrationsrezepte aus dieser JUnit-ähnlichen Assertion migriert:
Das Sensei Kochbuch für AssertJ hat ein Rezept, das auch diese alte Art von Assertion erkennen kann, und bietet an, sie in diese zu konvertieren:
Ein anderes Rezept kann das folgende umwandeln:
dazu:
Eine einmalige Migration und einheitliche Kodierungspraktiken in allen Teams - mit Sensei
Wie wir aus den obigen Beispielen ersehen können, kann die manuelle Migration von Unit-Tests zu AssertJ viel Aufwand und Zeit kosten, die man besser in das Schreiben besserer Tests investieren sollte. Mit Sensei können Sie Ihre Unit-Tests einfach und sicher nach AssertJ migrieren. Sie können eine einmalige Migration durchführen oder einzelne Tests nach und nach auf AssertJ migrieren. Sensei bietet diese Art von Flexibilität, die Code-Migrationen weniger schmerzhaft macht.
Die Migration von Unit-Tests ist nur ein Beispiel für die vielen Möglichkeiten, die Sensei bietet, um konsistenten Code in Ihren Projekten zu schreiben. Sie können immer nach Anti-Patterns oder bestimmten manuellen Code-Transformationen Ausschau halten, auf die Sie häufig in Pull-Requests oder beim Coding selbst stoßen. Wenn Sie über eine Reihe von Codierungsrichtlinien verfügen, die von den Entwicklern häufig nicht beachtet werden, können Sie diese Richtlinien in Rezepte umwandeln, damit die Entwickler bewährte Codetransformationen sicher anwenden können.
Wenn Sie Fragen haben, würden wir uns freuen, von Ihnen zu hören! Treten Sie uns auf Slack bei: sensei-scw.slack.com
Ressourcen für den Einstieg
Vertrauensperson von Secure Code Warrior
Entdecken Sie den SCW Trust Agent, eine innovative Lösung, die die Sicherheit erhöht, indem sie die Kenntnisse und Fähigkeiten von Entwicklern in Bezug auf sicheren Code mit der von ihnen übertragenen Arbeit in Einklang bringt. Er bietet umfassende Transparenz und Kontrolle über das gesamte Code-Repository eines Unternehmens, indem er jeden Commit mit den sicheren Code-Profilen der Entwickler abgleicht. Mit SCW Trust Agent können Unternehmen ihre Sicherheitslage verbessern, die Entwicklungszyklen optimieren und die entwicklergesteuerte Sicherheit skalieren.
Trust Score von Secure Code Warrior
Entdecken Sie den SCW Trust Score, ein branchenweit einzigartiges Benchmarking zur Messung der Effektivität Ihres Sicherheitsprogramms. Vergleichen Sie sich mit Branchenkollegen, optimieren Sie Ihre Sicherheitslage und treffen Sie datengestützte Entscheidungen für eine verbesserte Software-Sicherheit.
Ressourcen für den Einstieg
Frauen in der Sicherheitsbranche sind auf dem Vormarsch: Wie die AWSN eine neue Generation von Superfrauen im Sicherheitsbereich hervorbringt
Secure-by-Design ist die neueste Initiative, die in aller Munde ist, und die australische Regierung, die mit der CISA auf den höchsten Ebenen der Global Governance zusammenarbeitet, fordert von den Anbietern einen höheren Standard für Softwarequalität und -sicherheit.
Frauen in der Sicherheitsbranche sind auf dem Vormarsch: Wie die AWSN eine neue Generation von Superfrauen im Sicherheitsbereich hervorbringt
Secure-by-Design ist die neueste Initiative, die in aller Munde ist, und die australische Regierung, die mit der CISA auf den höchsten Ebenen der Global Governance zusammenarbeitet, fordert von den Anbietern einen höheren Standard für Softwarequalität und -sicherheit.
SCW Trust Agent - Sichtbarkeit und Kontrolle zur Skalierung der entwicklergesteuerten Sicherheit
Der von Secure Code Warrior vorgestellte SCW Trust Agent bietet Sicherheitsverantwortlichen die Transparenz und Kontrolle, die sie für die Skalierung der entwicklergesteuerten Sicherheit in Unternehmen benötigen. Durch die Verbindung mit Code-Repositories wertet er Code-Commit-Metadaten aus, prüft Entwickler, verwendete Programmiersprachen und Zeitstempel für den Versand, um das Sicherheitswissen der Entwickler zu ermitteln.
Ist Ihr Sicherheitsprogramm bereit für den CISA-Strategieplan für Cybersicherheit?
Der Strategische Plan für Cybersicherheit sieht weitreichende Änderungen in der Art und Weise vor, wie die meisten Unternehmen an die Cybersicherheit herangehen, und Entwickler befinden sich in einer einzigartigen Position, um zur Erreichung dieser neuen Ziele beizutragen.
Unit-Tests mit Sensei und AssertJ lesbar machen
![](https://cdn.prod.website-files.com/5fec9210c1841a6c20c6ce81/63e39c37c7605a217e7bde71_618e1006e8212f833836ee02_JodaTime%2520Blog%2520Main%2520Image.webp)
Entwickler erstellen und testen ihren eigenen Code mit verschiedenen Methoden. Eine dieser Methoden sind Unit-Tests - eine sehr beliebte Methode zum Testen der kleinsten Teile des eigenen Codes. Wenn sie gut geschrieben sind, können Unit-Tests dazu beitragen, die Qualität Ihres Codes zu verbessern sowie Kosten und Entwicklungszeit zu reduzieren. Unabhängig davon, ob sie im Rahmen der testgetriebenen Entwicklung (TDD) durchgeführt werden oder nicht, sind Unit-Tests ein wichtiger Bestandteil der modernen Entwicklungspraktiken, und ihre Bedeutung hat zur Schaffung zahlreicher Test-Frameworks geführt.
Ohne ein geeignetes Test-Framework und eine entsprechende Anleitung können Unit-Tests jedoch komplex und unleserlich werden, da der Schwerpunkt eher auf Abdeckung und Quantität als auf Qualität und Lesbarkeit liegt. Dies gilt insbesondere für eine große und aktive Codebasis mit vielen Unit-Tests.
Ein gutes Test-Framework hilft bei der Erstellung gut lesbarer Tests, die einfach sind und sich auf Qualitätstests konzentrieren. Sie helfen auch dabei, die Art und Weise zu dokumentieren, wie Ihr Code zu verwenden ist. Ein solches Framework ist AssertJ.
AssertJ ist eine fließende API zum Schreiben von Unit-Tests in Java. Mit ihr können Sie Testbehauptungen schreiben, die sich wie Englisch lesen, mit kontextabhängiger Autovervollständigung. Wenn Sie eine große Anzahl von Tests haben und deren Lesbarkeit verbessern müssen, möchten Sie vielleicht alle zu AssertJ migrieren und sicherstellen, dass alle zukünftigen Tests die Vorteile von AssertJ nutzen.
Eine vollständige Migration kann jedoch einen enormen Aufwand und viel Zeit in Anspruch nehmen und wird daher oft übersprungen oder zugunsten anderer Entwicklungsaufgaben aufgeschoben. Deshalb haben wir Sensei entwickelt - ein hochgradig anpassbares IntelliJ-Plugin, das Ihnen helfen kann, Ihre aktuellen Unit-Tests auf AssertJ zu migrieren und alle zukünftigen Tests auf die richtige Weise zu schreiben. Dies geschieht mit einer Reihe von Rezepten (Regeln), die das Entwicklungsteam von Senseibereits für Sie erstellt hat. Sensei macht es einfach, eine einmalige Migration durchzuführen oder den Ansatz einer schrittweisen Migration zu AssertJ zu wählen, einen Test nach dem anderen. Nach der Umstellung auf AssertJ helfen die Rezepte den Entwicklern weiterhin bei der Anwendung von Schnellkorrekturen, während sie Unit-Tests schreiben, so dass Ihre Unit-Tests weiterhin einheitlich, standardisiert und konsistent über die gesamte Codebasis sind.
![Video zur Einstellung der AssertJ has size rule](https://cdn.prod.website-files.com/5fec9210c1841a6c20c6ce81/62c8286912348cd4de0cf64e_unit-test-coding-guidelines.gif)
Über Sensei
Sensei ist ein hochgradig anpassbares IntelliJ-Plugin zum Scannen und Korrigieren von unerwünschtem Code während der Eingabe - mit Hunderten von herunterladbaren Code-Transformationen und Migrationsrezepten (Regeln) sowie einer eingebauten Möglichkeit, eigene zu erstellen. Mit Sensei können Entwickler schlechte Codemuster während der Eingabe korrigieren, so dass sie qualitativ hochwertigen Code schneller liefern und ihn letztlich in einer konsistenten und standardisierten Art und Weise über Teams und Projekte hinweg schreiben können.
Hier ist ein Beispiel für eine Migration, die Ihnen zeigen könnte, wie Sensei die Migration Ihrer Unit-Tests zur Verwendung von AssertJ vereinfacht.
Warum ist AssertJ ein großartiges Framework zum Schreiben von Unit-Tests
Anstatt einen Test wie diese JUnit-Assertion zu schreiben:
können Sie dies mit AssertJ schreiben:
Das bedeutet, dass Sie die Behauptung wie einen englischen Satz von links nach rechts lesen können, und es ist klar, was die Erwartung ist (in diesem Fall die Größe 3). Wie oft haben Sie schon eine Behauptung falsch herum geschrieben, so wie hier?
Dies sind nur einfache Beispiele. Je komplexer Ihre Prüfungen und Assertions sind, desto mehr hilft Ihnen AssertJ, Ihre Tests einfach und lesbar zu gestalten. Es arbeitet sehr gut mit der Autovervollständigung Ihrer IDE zusammen. Sobald Sie eingeben:
wird je nach Typ von myResult eine Liste mit allen Dingen angezeigt, die Sie überprüfen können. Handelt es sich um eine Auflistung, können Sie den Inhalt, die Größe, den Inhalt bestimmter Werte oder Typen usw. überprüfen.
AssertJ unterstützt von Haus aus Primitive und ihre Boxed Types, Atomic Types, Collections, Arrays, Maps, Dates, java.time, Futures, Files/Paths, InputStreams, Throwables und URLs. Und wenn Sie einen bevorzugten benutzerdefinierten Matcher für Hamcrest haben, können Sie ihn mit AssertJ über HamcrestCondition verwenden.
Lesbare Unit-Tests erleichtern es Entwicklern, den Code in normalem Englisch zu lesen und machen es daher einfach, Fehler zu erkennen und die Abdeckung zu erhöhen - was AssertJ zu einem unverzichtbaren Framework für gute Java Unit-Tests macht.
Rezepte zum Verschieben von Legacy-Unit-Tests nach AssertJ
Wir haben ein Kochbuch geschrieben , um Ihnen zu helfen, konsistenten Code mit AssertJ zu schreiben. Es kann Ihnen helfen, Ihre Assertions von einem der folgenden Frameworks zu AssertJ zu migrieren: JUnit 3, JUnit 4, JUnit 5 und FEST-Assert.
Dieses Kochbuch kann in Sensei zur sofortigen Verwendung konfiguriert werden. Eine Installationsanleitung für Sensei finden Siehier.
Bessere Unit-Tests beim Programmieren schreiben - JUnit-Qualität schrittweise verbessern
Das Sensei Kochbuch für AssertJ hilft Ihnen nicht nur bei der Migration von anderen Frameworks. Es enthält einige Rezepte, die Ihnen helfen können, Ihre Tests zu verbessern, mit alten Gewohnheiten zu brechen und mehr idiomatische AssertJ-Tests zu schreiben.
Nehmen wir zum Beispiel an, Sie haben einen Test geschrieben, der wie folgt aussieht:
Vielleicht haben Sie es sogar mit einem der oben genannten Migrationsrezepte aus dieser JUnit-ähnlichen Assertion migriert:
Das Sensei Kochbuch für AssertJ hat ein Rezept, das auch diese alte Art von Assertion erkennen kann, und bietet an, sie in diese zu konvertieren:
Ein anderes Rezept kann das folgende umwandeln:
dazu:
Eine einmalige Migration und einheitliche Kodierungspraktiken in allen Teams - mit Sensei
Wie wir aus den obigen Beispielen ersehen können, kann die manuelle Migration von Unit-Tests zu AssertJ viel Aufwand und Zeit kosten, die man besser in das Schreiben besserer Tests investieren sollte. Mit Sensei können Sie Ihre Unit-Tests einfach und sicher nach AssertJ migrieren. Sie können eine einmalige Migration durchführen oder einzelne Tests nach und nach auf AssertJ migrieren. Sensei bietet diese Art von Flexibilität, die Code-Migrationen weniger schmerzhaft macht.
Die Migration von Unit-Tests ist nur ein Beispiel für die vielen Möglichkeiten, die Sensei bietet, um konsistenten Code in Ihren Projekten zu schreiben. Sie können immer nach Anti-Patterns oder bestimmten manuellen Code-Transformationen Ausschau halten, auf die Sie häufig in Pull-Requests oder beim Coding selbst stoßen. Wenn Sie über eine Reihe von Codierungsrichtlinien verfügen, die von den Entwicklern häufig nicht beachtet werden, können Sie diese Richtlinien in Rezepte umwandeln, damit die Entwickler bewährte Codetransformationen sicher anwenden können.
Wenn Sie Fragen haben, würden wir uns freuen, von Ihnen zu hören! Treten Sie uns auf Slack bei: sensei-scw.slack.com
Ressourcen für den Einstieg
Frauen in der Sicherheitsbranche sind auf dem Vormarsch: Wie die AWSN eine neue Generation von Superfrauen im Sicherheitsbereich hervorbringt
Secure-by-Design ist die neueste Initiative, die in aller Munde ist, und die australische Regierung, die mit der CISA auf den höchsten Ebenen der Global Governance zusammenarbeitet, fordert von den Anbietern einen höheren Standard für Softwarequalität und -sicherheit.
SCW Trust Agent - Sichtbarkeit und Kontrolle zur Skalierung der entwicklergesteuerten Sicherheit
Der von Secure Code Warrior vorgestellte SCW Trust Agent bietet Sicherheitsverantwortlichen die Transparenz und Kontrolle, die sie für die Skalierung der entwicklergesteuerten Sicherheit in Unternehmen benötigen. Durch die Verbindung mit Code-Repositories wertet er Code-Commit-Metadaten aus, prüft Entwickler, verwendete Programmiersprachen und Zeitstempel für den Versand, um das Sicherheitswissen der Entwickler zu ermitteln.
Vertrauensperson von Secure Code Warrior
Entdecken Sie den SCW Trust Agent, eine innovative Lösung, die die Sicherheit erhöht, indem sie die Kenntnisse und Fähigkeiten von Entwicklern in Bezug auf sicheren Code mit der von ihnen übertragenen Arbeit in Einklang bringt. Er bietet umfassende Transparenz und Kontrolle über das gesamte Code-Repository eines Unternehmens, indem er jeden Commit mit den sicheren Code-Profilen der Entwickler abgleicht. Mit SCW Trust Agent können Unternehmen ihre Sicherheitslage verbessern, die Entwicklungszyklen optimieren und die entwicklergesteuerte Sicherheit skalieren.