SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

Méthode de modification et visibilité des classes pour JUnit 5

Alan Richardson
Veröffentlicht Dez 21, 2020
Zuletzt aktualisiert am 08. März 2026

Ändern der Sichtbarkeit von Methoden und Klassen für JUnit 5

Eine der Freuden des Programmierens ist das ständige Lernen, das erforderlich ist, um auf dem neuesten Stand zu bleiben. Eines der Probleme ist, dass wir eine Vertrautheit und Nutzungsmuster aufbauen, die sich auf die Annahme neuer Ansätze auswirken können. Sensei kann bei der Migration helfen, indem es veraltete Muster identifiziert und uns auffordert, den Fix für die Zukunft zu verwenden.

Als ich zum Beispiel von JUnit 4 auf JUnit 5 migriert bin, war ich es gewohnt, alle meine Testklassen und -methoden als öffentlich zu schreiben. Aber mit JUnit 5 können sie package private sein.

z.B. statt:

public class Junit5VisibilityTest {
    @Test
    public void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Ich möchte wirklich schreiben:

class Junit5VisibilityTest {
    @Test
    void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Es hat eine Weile gedauert, bis ich das Muskelgedächtnis für diesen Code aufgebaut hatte, und ich mache immer noch hin und wieder Fehler.

Verwendung von Sensei

Mit Sensei kann ich Rezepte erstellen, die die öffentlichen Methoden und Klassen finden und die Deklarationen so ändern, dass sie automatisch package private sind.

Um dies zu erreichen, habe ich ein Rezept erstellt:

Name - JUnit: JUnit 5 test methods do not need to be public
Beschreibung - JUnit 5 test methods do not need public visibility
Level - Error


Ich habe es als Fehler eingestuft, weil ich diese Codierungspraxis ausmerzen möchte und ich möchte, dass das Problem beim Schreiben von Code in der IDE besser sichtbar ist.

Ändern der Klassenerklärung

Um die Klassen zu finden, suche ich nach jeder Klasse, die eine Child-Annotation von @Test aus Junit 5 hat, d. h. org.junit.jupiter.api.Test

Und wo die Klasse den Modifikator public hat:

search:
class:
with:
child:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"

Dann ändert die Schnellreparatur den Modifikator, um die Sichtbarkeit zu entfernen, so dass es der Standard ist, und der Standard ist Paket privat, was ich suche.

availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility: ""



Ändern der Methodendeklarationen

Das Änderungsrezept für die Methodendeklaration ist dem Klassenrezept sehr ähnlich.

Zunächst suche ich nach öffentlichen Methoden, die mit @Test aus JUnit 5 annotiert sind.

search:
method:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"


Und dann ändere ich den Modifikator auf die Standard-Sichtbarkeit.

availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility: ""


Hinweis: Ändern mehrerer Methoden

Sensei hat die Möglichkeit, den QuickFix auf alle Verstöße in der aktuellen Datei anzuwenden.

Wenn ich alt+enter verwende, um den QuickFix anzuwenden.

Wenn ich das QuickFix-Namensmenü erweitere, sehe ich eine Option zum:

"Fix All: 'JUnit: JUnit 5 test methods do not need to be public' Probleme in der Datei"

Wenn ich diese Option auswähle, ändert Sensei alle Vorkommen des Problems, nicht nur das von mir ausgewählte.


Testmethode entfernen Öffentliche Sichtbarkeit

Ändern der Klasse

Genauso wie eine Methode nicht öffentlich sein muss, muss auch die Klasse nicht öffentlich sein.

Ich kann ein Rezept und einen QuckFix erstellen, um die Klasse zu ändern.

Name - JUnit: Junit 5 Test classes do not need to be public
Beschreibung - Junit 5 Test classes do not need to be public
Level - Error


Wenn ich eine Klasse finde, die öffentlich ist und eine Methode mit einer @Test-Annotation hat. Dann möchte ich die Sichtbarkeit ändern.

search:
class:
modifier: "public"
anyOf:
- child:
method:
annotation:
type: "Test"


Ich kann die Änderung an der Klassendefinition wieder mit der Aktion changeModifiers vornehmen.

availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility: ""


Zusammenfassung

Ein statisches Analysetool hat mich zunächst auf diesen empfohlenen Ansatz in JUnit aufmerksam gemacht. Aber das statische Analysewerkzeug hat mir nicht geholfen, das Muskelgedächtnis aufzubauen, um meinen Code beim Programmieren zu ändern.

Verwenden Sie den "Level", um Sie zu warnen. Wenn es sich um ein Problem handelt, das ich in meiner Kodierung auszumerzen versuche, stelle ich es zunächst auf "Fehler" und reduziere es dann, während ich mich vom Kodierungsansatz entwöhne.

Denken Sie daran, dass Sie mit Sensei alle Probleme in der aktuellen Datei gleichzeitig beheben können, indem Sie beim Anwenden des QuickFix die Option des Dropdown-Menüs verwenden.

Indem ich ein Sensei Rezept erstelle, kann ich meinen alten Kodierungsansatz in Echtzeit sehen. Und QuickFix es, um den Ansatz zu verstärken, wenn ich gelegentlich in meiner Kodierung ausrutsche.

---

Sie können Sensei aus IntelliJ heraus über "Preferences \ Plugins" (Mac) oder "Settings \ Plugins" (Windows) installieren und dann einfach nach "sensei secure code" suchen.

Den Quellcode und die Rezepte dafür finden Sie im Repository `sensei-blog-examples` im GitHub-Konto Secure Code Warrior , im Modul `junitexamples`.



Ressource anzeigen
Ressource anzeigen

Découvrez comment Sensei peut faciliter la migration en identifiant les modèles obsolètes et en vous proposant le correctif à utiliser à l'avenir.

Möchten Sie mehr erfahren?

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

mehr erfahren

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Alan Richardson
Veröffentlicht Dez 21, 2020

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Teilen auf:
LinkedIn-MarkenSozialx Logo

Ändern der Sichtbarkeit von Methoden und Klassen für JUnit 5

Eine der Freuden des Programmierens ist das ständige Lernen, das erforderlich ist, um auf dem neuesten Stand zu bleiben. Eines der Probleme ist, dass wir eine Vertrautheit und Nutzungsmuster aufbauen, die sich auf die Annahme neuer Ansätze auswirken können. Sensei kann bei der Migration helfen, indem es veraltete Muster identifiziert und uns auffordert, den Fix für die Zukunft zu verwenden.

Als ich zum Beispiel von JUnit 4 auf JUnit 5 migriert bin, war ich es gewohnt, alle meine Testklassen und -methoden als öffentlich zu schreiben. Aber mit JUnit 5 können sie package private sein.

z.B. statt:

public class Junit5VisibilityTest {
    @Test
    public void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Ich möchte wirklich schreiben:

class Junit5VisibilityTest {
    @Test
    void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Es hat eine Weile gedauert, bis ich das Muskelgedächtnis für diesen Code aufgebaut hatte, und ich mache immer noch hin und wieder Fehler.

Verwendung von Sensei

Mit Sensei kann ich Rezepte erstellen, die die öffentlichen Methoden und Klassen finden und die Deklarationen so ändern, dass sie automatisch package private sind.

Um dies zu erreichen, habe ich ein Rezept erstellt:

Name - JUnit: JUnit 5 test methods do not need to be public
Beschreibung - JUnit 5 test methods do not need public visibility
Level - Error


Ich habe es als Fehler eingestuft, weil ich diese Codierungspraxis ausmerzen möchte und ich möchte, dass das Problem beim Schreiben von Code in der IDE besser sichtbar ist.

Ändern der Klassenerklärung

Um die Klassen zu finden, suche ich nach jeder Klasse, die eine Child-Annotation von @Test aus Junit 5 hat, d. h. org.junit.jupiter.api.Test

Und wo die Klasse den Modifikator public hat:

search:
class:
with:
child:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"

Dann ändert die Schnellreparatur den Modifikator, um die Sichtbarkeit zu entfernen, so dass es der Standard ist, und der Standard ist Paket privat, was ich suche.

availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility: ""



Ändern der Methodendeklarationen

Das Änderungsrezept für die Methodendeklaration ist dem Klassenrezept sehr ähnlich.

Zunächst suche ich nach öffentlichen Methoden, die mit @Test aus JUnit 5 annotiert sind.

search:
method:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"


Und dann ändere ich den Modifikator auf die Standard-Sichtbarkeit.

availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility: ""


Hinweis: Ändern mehrerer Methoden

Sensei hat die Möglichkeit, den QuickFix auf alle Verstöße in der aktuellen Datei anzuwenden.

Wenn ich alt+enter verwende, um den QuickFix anzuwenden.

Wenn ich das QuickFix-Namensmenü erweitere, sehe ich eine Option zum:

"Fix All: 'JUnit: JUnit 5 test methods do not need to be public' Probleme in der Datei"

Wenn ich diese Option auswähle, ändert Sensei alle Vorkommen des Problems, nicht nur das von mir ausgewählte.


Testmethode entfernen Öffentliche Sichtbarkeit

Ändern der Klasse

Genauso wie eine Methode nicht öffentlich sein muss, muss auch die Klasse nicht öffentlich sein.

Ich kann ein Rezept und einen QuckFix erstellen, um die Klasse zu ändern.

Name - JUnit: Junit 5 Test classes do not need to be public
Beschreibung - Junit 5 Test classes do not need to be public
Level - Error


Wenn ich eine Klasse finde, die öffentlich ist und eine Methode mit einer @Test-Annotation hat. Dann möchte ich die Sichtbarkeit ändern.

search:
class:
modifier: "public"
anyOf:
- child:
method:
annotation:
type: "Test"


Ich kann die Änderung an der Klassendefinition wieder mit der Aktion changeModifiers vornehmen.

availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility: ""


Zusammenfassung

Ein statisches Analysetool hat mich zunächst auf diesen empfohlenen Ansatz in JUnit aufmerksam gemacht. Aber das statische Analysewerkzeug hat mir nicht geholfen, das Muskelgedächtnis aufzubauen, um meinen Code beim Programmieren zu ändern.

Verwenden Sie den "Level", um Sie zu warnen. Wenn es sich um ein Problem handelt, das ich in meiner Kodierung auszumerzen versuche, stelle ich es zunächst auf "Fehler" und reduziere es dann, während ich mich vom Kodierungsansatz entwöhne.

Denken Sie daran, dass Sie mit Sensei alle Probleme in der aktuellen Datei gleichzeitig beheben können, indem Sie beim Anwenden des QuickFix die Option des Dropdown-Menüs verwenden.

Indem ich ein Sensei Rezept erstelle, kann ich meinen alten Kodierungsansatz in Echtzeit sehen. Und QuickFix es, um den Ansatz zu verstärken, wenn ich gelegentlich in meiner Kodierung ausrutsche.

---

Sie können Sensei aus IntelliJ heraus über "Preferences \ Plugins" (Mac) oder "Settings \ Plugins" (Windows) installieren und dann einfach nach "sensei secure code" suchen.

Den Quellcode und die Rezepte dafür finden Sie im Repository `sensei-blog-examples` im GitHub-Konto Secure Code Warrior , im Modul `junitexamples`.



Ressource anzeigen
Ressource anzeigen

Füllen Sie das untenstehende Formular aus, um den Bericht herunterzuladen.

Wir möchten Ihre Einwilligung einholen, um Ihnen Informationen zu unseren Produkten und/oder zu Themen im Zusammenhang mit sicherer Verschlüsselung zuzusenden. Wir werden Ihre personenbezogenen Daten stets mit größter Sorgfalt behandeln und niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Einreichen
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte die „Analytics“-Cookies. Sie können diese nach Abschluss des Vorgangs wieder deaktivieren.

Ändern der Sichtbarkeit von Methoden und Klassen für JUnit 5

Eine der Freuden des Programmierens ist das ständige Lernen, das erforderlich ist, um auf dem neuesten Stand zu bleiben. Eines der Probleme ist, dass wir eine Vertrautheit und Nutzungsmuster aufbauen, die sich auf die Annahme neuer Ansätze auswirken können. Sensei kann bei der Migration helfen, indem es veraltete Muster identifiziert und uns auffordert, den Fix für die Zukunft zu verwenden.

Als ich zum Beispiel von JUnit 4 auf JUnit 5 migriert bin, war ich es gewohnt, alle meine Testklassen und -methoden als öffentlich zu schreiben. Aber mit JUnit 5 können sie package private sein.

z.B. statt:

public class Junit5VisibilityTest {
    @Test
    public void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Ich möchte wirklich schreiben:

class Junit5VisibilityTest {
    @Test
    void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Es hat eine Weile gedauert, bis ich das Muskelgedächtnis für diesen Code aufgebaut hatte, und ich mache immer noch hin und wieder Fehler.

Verwendung von Sensei

Mit Sensei kann ich Rezepte erstellen, die die öffentlichen Methoden und Klassen finden und die Deklarationen so ändern, dass sie automatisch package private sind.

Um dies zu erreichen, habe ich ein Rezept erstellt:

Name - JUnit: JUnit 5 test methods do not need to be public
Beschreibung - JUnit 5 test methods do not need public visibility
Level - Error


Ich habe es als Fehler eingestuft, weil ich diese Codierungspraxis ausmerzen möchte und ich möchte, dass das Problem beim Schreiben von Code in der IDE besser sichtbar ist.

Ändern der Klassenerklärung

Um die Klassen zu finden, suche ich nach jeder Klasse, die eine Child-Annotation von @Test aus Junit 5 hat, d. h. org.junit.jupiter.api.Test

Und wo die Klasse den Modifikator public hat:

search:
class:
with:
child:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"

Dann ändert die Schnellreparatur den Modifikator, um die Sichtbarkeit zu entfernen, so dass es der Standard ist, und der Standard ist Paket privat, was ich suche.

availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility: ""



Ändern der Methodendeklarationen

Das Änderungsrezept für die Methodendeklaration ist dem Klassenrezept sehr ähnlich.

Zunächst suche ich nach öffentlichen Methoden, die mit @Test aus JUnit 5 annotiert sind.

search:
method:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"


Und dann ändere ich den Modifikator auf die Standard-Sichtbarkeit.

availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility: ""


Hinweis: Ändern mehrerer Methoden

Sensei hat die Möglichkeit, den QuickFix auf alle Verstöße in der aktuellen Datei anzuwenden.

Wenn ich alt+enter verwende, um den QuickFix anzuwenden.

Wenn ich das QuickFix-Namensmenü erweitere, sehe ich eine Option zum:

"Fix All: 'JUnit: JUnit 5 test methods do not need to be public' Probleme in der Datei"

Wenn ich diese Option auswähle, ändert Sensei alle Vorkommen des Problems, nicht nur das von mir ausgewählte.


Testmethode entfernen Öffentliche Sichtbarkeit

Ändern der Klasse

Genauso wie eine Methode nicht öffentlich sein muss, muss auch die Klasse nicht öffentlich sein.

Ich kann ein Rezept und einen QuckFix erstellen, um die Klasse zu ändern.

Name - JUnit: Junit 5 Test classes do not need to be public
Beschreibung - Junit 5 Test classes do not need to be public
Level - Error


Wenn ich eine Klasse finde, die öffentlich ist und eine Methode mit einer @Test-Annotation hat. Dann möchte ich die Sichtbarkeit ändern.

search:
class:
modifier: "public"
anyOf:
- child:
method:
annotation:
type: "Test"


Ich kann die Änderung an der Klassendefinition wieder mit der Aktion changeModifiers vornehmen.

availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility: ""


Zusammenfassung

Ein statisches Analysetool hat mich zunächst auf diesen empfohlenen Ansatz in JUnit aufmerksam gemacht. Aber das statische Analysewerkzeug hat mir nicht geholfen, das Muskelgedächtnis aufzubauen, um meinen Code beim Programmieren zu ändern.

Verwenden Sie den "Level", um Sie zu warnen. Wenn es sich um ein Problem handelt, das ich in meiner Kodierung auszumerzen versuche, stelle ich es zunächst auf "Fehler" und reduziere es dann, während ich mich vom Kodierungsansatz entwöhne.

Denken Sie daran, dass Sie mit Sensei alle Probleme in der aktuellen Datei gleichzeitig beheben können, indem Sie beim Anwenden des QuickFix die Option des Dropdown-Menüs verwenden.

Indem ich ein Sensei Rezept erstelle, kann ich meinen alten Kodierungsansatz in Echtzeit sehen. Und QuickFix es, um den Ansatz zu verstärken, wenn ich gelegentlich in meiner Kodierung ausrutsche.

---

Sie können Sensei aus IntelliJ heraus über "Preferences \ Plugins" (Mac) oder "Settings \ Plugins" (Windows) installieren und dann einfach nach "sensei secure code" suchen.

Den Quellcode und die Rezepte dafür finden Sie im Repository `sensei-blog-examples` im GitHub-Konto Secure Code Warrior , im Modul `junitexamples`.



Webinar anzeigen
Beginnen Sie
mehr erfahren

Klicken Sie auf den untenstehenden Link und laden Sie das PDF dieser Ressource herunter.

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht anzeigenDemo buchen
PDF herunterladen
Ressource anzeigen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Möchten Sie mehr erfahren?

Teilen auf:
LinkedIn-MarkenSozialx Logo
Autor
Alan Richardson
Veröffentlicht Dez 21, 2020

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

Teilen auf:
LinkedIn-MarkenSozialx Logo

Ändern der Sichtbarkeit von Methoden und Klassen für JUnit 5

Eine der Freuden des Programmierens ist das ständige Lernen, das erforderlich ist, um auf dem neuesten Stand zu bleiben. Eines der Probleme ist, dass wir eine Vertrautheit und Nutzungsmuster aufbauen, die sich auf die Annahme neuer Ansätze auswirken können. Sensei kann bei der Migration helfen, indem es veraltete Muster identifiziert und uns auffordert, den Fix für die Zukunft zu verwenden.

Als ich zum Beispiel von JUnit 4 auf JUnit 5 migriert bin, war ich es gewohnt, alle meine Testklassen und -methoden als öffentlich zu schreiben. Aber mit JUnit 5 können sie package private sein.

z.B. statt:

public class Junit5VisibilityTest {
    @Test
    public void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Ich möchte wirklich schreiben:

class Junit5VisibilityTest {
    @Test
    void thisDoesNotNeedToBePublic(){
        Assertions.assertTrue(true);
    }
}


Es hat eine Weile gedauert, bis ich das Muskelgedächtnis für diesen Code aufgebaut hatte, und ich mache immer noch hin und wieder Fehler.

Verwendung von Sensei

Mit Sensei kann ich Rezepte erstellen, die die öffentlichen Methoden und Klassen finden und die Deklarationen so ändern, dass sie automatisch package private sind.

Um dies zu erreichen, habe ich ein Rezept erstellt:

Name - JUnit: JUnit 5 test methods do not need to be public
Beschreibung - JUnit 5 test methods do not need public visibility
Level - Error


Ich habe es als Fehler eingestuft, weil ich diese Codierungspraxis ausmerzen möchte und ich möchte, dass das Problem beim Schreiben von Code in der IDE besser sichtbar ist.

Ändern der Klassenerklärung

Um die Klassen zu finden, suche ich nach jeder Klasse, die eine Child-Annotation von @Test aus Junit 5 hat, d. h. org.junit.jupiter.api.Test

Und wo die Klasse den Modifikator public hat:

search:
class:
with:
child:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"

Dann ändert die Schnellreparatur den Modifikator, um die Sichtbarkeit zu entfernen, so dass es der Standard ist, und der Standard ist Paket privat, was ich suche.

availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility: ""



Ändern der Methodendeklarationen

Das Änderungsrezept für die Methodendeklaration ist dem Klassenrezept sehr ähnlich.

Zunächst suche ich nach öffentlichen Methoden, die mit @Test aus JUnit 5 annotiert sind.

search:
method:
annotation:
type: "org.junit.jupiter.api.Test"
modifier: "public"


Und dann ändere ich den Modifikator auf die Standard-Sichtbarkeit.

availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility: ""


Hinweis: Ändern mehrerer Methoden

Sensei hat die Möglichkeit, den QuickFix auf alle Verstöße in der aktuellen Datei anzuwenden.

Wenn ich alt+enter verwende, um den QuickFix anzuwenden.

Wenn ich das QuickFix-Namensmenü erweitere, sehe ich eine Option zum:

"Fix All: 'JUnit: JUnit 5 test methods do not need to be public' Probleme in der Datei"

Wenn ich diese Option auswähle, ändert Sensei alle Vorkommen des Problems, nicht nur das von mir ausgewählte.


Testmethode entfernen Öffentliche Sichtbarkeit

Ändern der Klasse

Genauso wie eine Methode nicht öffentlich sein muss, muss auch die Klasse nicht öffentlich sein.

Ich kann ein Rezept und einen QuckFix erstellen, um die Klasse zu ändern.

Name - JUnit: Junit 5 Test classes do not need to be public
Beschreibung - Junit 5 Test classes do not need to be public
Level - Error


Wenn ich eine Klasse finde, die öffentlich ist und eine Methode mit einer @Test-Annotation hat. Dann möchte ich die Sichtbarkeit ändern.

search:
class:
modifier: "public"
anyOf:
- child:
method:
annotation:
type: "Test"


Ich kann die Änderung an der Klassendefinition wieder mit der Aktion changeModifiers vornehmen.

availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility: ""


Zusammenfassung

Ein statisches Analysetool hat mich zunächst auf diesen empfohlenen Ansatz in JUnit aufmerksam gemacht. Aber das statische Analysewerkzeug hat mir nicht geholfen, das Muskelgedächtnis aufzubauen, um meinen Code beim Programmieren zu ändern.

Verwenden Sie den "Level", um Sie zu warnen. Wenn es sich um ein Problem handelt, das ich in meiner Kodierung auszumerzen versuche, stelle ich es zunächst auf "Fehler" und reduziere es dann, während ich mich vom Kodierungsansatz entwöhne.

Denken Sie daran, dass Sie mit Sensei alle Probleme in der aktuellen Datei gleichzeitig beheben können, indem Sie beim Anwenden des QuickFix die Option des Dropdown-Menüs verwenden.

Indem ich ein Sensei Rezept erstelle, kann ich meinen alten Kodierungsansatz in Echtzeit sehen. Und QuickFix es, um den Ansatz zu verstärken, wenn ich gelegentlich in meiner Kodierung ausrutsche.

---

Sie können Sensei aus IntelliJ heraus über "Preferences \ Plugins" (Mac) oder "Settings \ Plugins" (Windows) installieren und dann einfach nach "sensei secure code" suchen.

Den Quellcode und die Rezepte dafür finden Sie im Repository `sensei-blog-examples` im GitHub-Konto Secure Code Warrior , im Modul `junitexamples`.



Inhaltsverzeichnis

PDF herunterladen
Ressource anzeigen
Möchten Sie mehr erfahren?

Alan Richardson possède plus de vingt ans d'expérience professionnelle en informatique. Il a travaillé en tant que développeur et a occupé tous les niveaux de la hiérarchie des tests, du testeur au responsable des tests. Responsable des relations avec les développeurs chez Secure Code Warrior, il travaille directement avec les équipes, pour améliorer le développement d'un code sécurisé de qualité. Alan est l'auteur de quatre livres, dont « Dear Evil Tester » et « Java For Testers ». Alan a également créé des cours de formation en ligne pour aider les utilisateurs à apprendre les tests techniques sur le Web et Selenium WebDriver avec Java. Alan publie ses vidéos d'écriture et de formation sur SeleniumSimplified.com, EvilTester.com, JavaForTesters.com et CompendiumDev.co.uk.

mehr erfahren

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchenHerunterladen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge