JUnit 5 のメソッドとクラスの可視性の修正

JUnit 5 のメソッドとクラスの可視性の修正
プログラミングの楽しみの1つは、常に最新の情報を得るために必要な絶え間ない学習です。問題の 1 つは、新しいアプローチの採用に影響を与えるような親しみやすさと使用パターンが蓄積されることです。Senseiは、廃止予定のパターンを特定し、今後使用する修正を促すことで、移行を支援できます。
例として、JUnit 4からJUnit 5に移行したとき、私はすべてのテストクラスとメソッドをパブリックとして作成することに慣れていました。しかし、JUnit 5 ではパッケージをプライベートにできます。
例えば:の代わりに:
パブリッククラスJUnit5可視性テスト {
@Test
パブリックボイドこれはpublic () である必要はありません {
アサーション.assertTrue (true);
}
}
私は本当に書きたいです:
クラスユニット5視認性テスト {
@Test
void これは公開されている必要はありません () {
アサーション.assertTrue (true);
}
}
これをコーディングするためのマッスルメモリを構築するのにしばらく時間がかかりましたが、それでも時々失敗します。
先生を使う
Senseiを使えば、パブリックメソッドやクラスを見つけるレシピを作成したり、宣言を自動的にパッケージプライベートに修正したりできます。
これを実現するために、レシピを作成しました。
名前-JUnit: JUnit 5 のテストメソッドはパブリックである必要はありません
説明-JUnit 5 のテストメソッドはパブリックビジビリティを必要としません
レベル-エラー
これをエラーとして分類したのは、このコーディング手法を根絶し、IDEでコードを書くときに問題をより明確に把握したいからです。
クラス宣言の修正
クラスを見つけるには、JUnit 5 の @Test の子アノテーション、つまり org.junit.jupiter.api.Test が付いているクラスを検索します。
そして、クラスにパブリックという修飾子があるところは、
検索:
クラス:
と:
子供:
注釈:
タイプ:「org.junit.jupiter.api.test」
修飾子:「公開」
次に、クイックフィックスによってモディファイアが変更されて可視性が削除され、デフォルトがデフォルトになり、デフォルトは私が探しているパッケージプライベートになります。
利用可能な修正:
-名前:「JUnit 5 テストクラスからパブリックビジビリティを削除」
アクション:
-変更要因:
可視性:「」
メソッド宣言の修正
メソッド宣言修正レシピはクラスレシピとほとんど同じです。
まず、JUnit 5 の @Test というアノテーションの付いたパブリックメソッドを検索します。
検索:
方法:
注釈:
タイプ:「org.junit.jupiter.api.test」
修飾子:「公開」
そして、モディファイアをデフォルトの可視性に変更します。
利用可能な修正:
-名前:「@Test メソッドの公開可視性を削除」
アクション:
-変更要因:
可視性:「」
ヒント:複数の方法の修正
Senseiには、現在のファイル内のすべての違反にクイックフィックスを適用する機能があります。
Alt+Enterを使用してクイックフィックスを適用すると。
QuickFixの名前メニューを展開すると、次のオプションが表示されます。
「すべて修正:ファイル内の「JUnit: JUnit 5 テストメソッドを公開する必要はない」問題」
そのオプションを選択すると、Senseiは私が選択した問題だけでなく、発生したすべての問題を修正します。

クラスの修正
メソッドがパブリックである必要がないのと同じように、クラスもパブリックである必要はありません。
クラスを修正するためのレシピとQuckFixを作成できます。
名前-JUnit: JUnit 5 テストクラスはパブリックである必要はありません
説明-JUnit 5 テストクラスは公開する必要はありません
レベル-エラー
公開されていて、@Test というアノテーションの付いたメソッドを持つクラスを見つけたとき。それなら可視性を変えたい。
検索:
クラス:
修飾子:「公開」
次のいずれか:
-子供:
方法:
注釈:
タイプ:「テスト」
ChangeModifiers アクションを使用してクラス定義を再度変更できます。
利用可能な修正:
-名前:「@Test クラスのパブリックビジビリティを削除」
アクション:
-変更要因:
可視性:「」
サマリー
ある静的解析ツールが、最初に JUnit で推奨されているこのアプローチについて警告してくれました。しかし、静的解析ツールは、プログラミング中にコードを変更するためのマッスルメモリの構築には役立ちませんでした。
「レベル」を使用して警告してください。コーディングで解決しようとしている問題の場合は、最初に「エラー」にし、コーディングアプローチから離れるにつれてこれを減らします。
Senseiを使用すると、QuickFixを適用するときにドロップダウンメニューオプションを使用することにより、現在のファイル内のすべての問題を同時に修正できることを忘れないでください。
Senseiのレシピを作ることで、昔のコーディング手法をリアルタイムで見ることができます。そして、それをクイックフィックスして、コーディングでときどき失敗した場合にアプローチを強化します。
---
「環境設定\ プラグイン」(Mac) または「設定\ プラグイン」(Windows) を使用してIntelliJ内からSenseiをインストールし、「senseiセキュアコード」を検索するだけです。
このためのソースコードとレシピは、セキュア・コード・ウォリアーのGitHubアカウントの「sensei-blog-examples`」リポジトリの「junitexamples」モジュールにあります。
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
これは、オーラが射手と鼻の穴を広げることによって、腸管を熱的に発芽させ、臭いを帯びていることを防ぐためのものです。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.
%252520(1).avif)
Why most CISOs are navigating AI adoption blindfolded (and how they can remove it)
Today, Secure Code Warrior issued an all-new white paper covering a prescriptive, directional AI adoption model that security leaders can use to identify their adoption stage and make real progress in bringing the AI security risks within their organization under control.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

