私はjunitテストのドキュメントを調べていましたが、テストをパブリックとして定義する必要性を理解できません.これに関する情報を共有できますか?
https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.javaを読みました
しかし、その理由はまだはっきりしていません。
とは、なぜ次のように書くことができないのかという意味です
@Test
private void testAdd(){ }
私はjunitテストのドキュメントを調べていましたが、テストをパブリックとして定義する必要性を理解できません.これに関する情報を共有できますか?
https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.javaを読みました
しかし、その理由はまだはっきりしていません。
とは、なぜ次のように書くことができないのかという意味です
@Test
private void testAdd(){ }
JUnit フレームワークは、テスト クラスの外部からテスト メソッドを呼び出します。テストメソッドが非公開の場合、それはできません。
JUnit は、リフレクションによってテスト メソッドにアクセスします。SecurityManager は、プライベート メソッドへのアクセスを制御できます。したがって、JUnit は、フレームワークによってアクセスされるすべてのものに対してパブリック メソッドとフィールドのみを使用します。
つまり、プライベート メソッドへのアクセスを許可しない SecurityManager がアクティブな場合、JUnit はプライベート テスト メソッドの実行に失敗します。
試す
@Test
public void testAdd(){ }
testAdd メソッドはプライベートであるため、それを行うことはできません。