Unit-Tests mit Sensei und AssertJ lesbar machen
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.
Ü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
Einheitliche und konsistente Umsetzung der Richtlinien für die Codierung von Unit-Tests
Sean ist ein leitender Software-Ingenieur bei Secure Code Warrior. Er verfügt über mehr als ein Jahrzehnt an Entwicklungserfahrung, wobei sein Schwerpunkt darauf liegt, Entwicklern bei der Erstellung besserer Software zu helfen, und hat zu einer Reihe von Open-Source-Projekten beigetragen.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenSean ist ein leitender Software-Ingenieur bei Secure Code Warrior. Er verfügt über mehr als ein Jahrzehnt an Entwicklungserfahrung, wobei sein Schwerpunkt darauf liegt, Entwicklern bei der Erstellung besserer Software zu helfen, und hat zu einer Reihe von Open-Source-Projekten beigetragen.
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.
Ü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
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.
Ü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
Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenSean ist ein leitender Software-Ingenieur bei Secure Code Warrior. Er verfügt über mehr als ein Jahrzehnt an Entwicklungserfahrung, wobei sein Schwerpunkt darauf liegt, Entwicklern bei der Erstellung besserer Software zu helfen, und hat zu einer Reihe von Open-Source-Projekten beigetragen.
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.
Ü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
Inhaltsübersicht
Sean ist ein leitender Software-Ingenieur bei Secure Code Warrior. Er verfügt über mehr als ein Jahrzehnt an Entwicklungserfahrung, wobei sein Schwerpunkt darauf liegt, Entwicklern bei der Erstellung besserer Software zu helfen, und hat zu einer Reihe von Open-Source-Projekten beigetragen.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
DigitalOcean verringert Sicherheitsverschuldung mit Secure Code Warrior
DigitalOceans Einsatz von Secure Code Warrior hat die Sicherheitsverschuldung deutlich reduziert, so dass sich die Teams stärker auf Innovation und Produktivität konzentrieren können. Die verbesserte Sicherheit hat die Produktqualität und den Wettbewerbsvorteil des Unternehmens gestärkt. Mit Blick auf die Zukunft wird der SCW Trust Score dem Unternehmen helfen, seine Sicherheitspraktiken weiter zu verbessern und Innovationen voranzutreiben.
Ressourcen für den Einstieg
Trust Score zeigt den Wert von Secure-by-Design-Upskilling-Initiativen
Unsere Forschung hat gezeigt, dass Schulungen für sicheren Code funktionieren. Trust Score verwendet einen Algorithmus, der auf mehr als 20 Millionen Lerndaten aus der Arbeit von mehr als 250.000 Lernenden in über 600 Organisationen basiert, und zeigt, wie effektiv die Initiative ist, um Schwachstellen zu beseitigen und wie man sie noch effektiver gestalten kann.
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.
Die Vorteile eines Benchmarking der Sicherheitskompetenzen von Entwicklern
Der zunehmende Fokus auf sicheren Code und Secure-by-Design-Prinzipien erfordert, dass Entwickler von Beginn des SDLC an in Cybersicherheit geschult werden, wobei Tools wie Secure Code Warrior's Trust Score dabei helfen, ihre Fortschritte zu messen und zu verbessern.
Wesentlicher Erfolg für Enterprise Secure-by-Design-Initiativen
Unser jüngstes Forschungspapier „Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise“ ist das Ergebnis einer umfassenden Analyse echter Secure-by-Design-Initiativen auf Unternehmensebene und der Ableitung von Best-Practice-Ansätzen auf Grundlage datengesteuerter Erkenntnisse.