12

私はjunitテストのドキュメントを調べていましたが、テストをパブリックとして定義する必要性を理解できません.これに関する情報を共有できますか?

https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.javaを読みました

しかし、その理由はまだはっきりしていません。

とは、なぜ次のように書くことができないのかという意味です

@Test
private void testAdd(){ }
4

4 に答える 4

9

JUnit フレームワークは、テスト クラスの外部からテスト メソッドを呼び出します。テストメソッドが非公開の場合、それはできません。

于 2013-10-10T03:12:35.247 に答える
1

JUnit は、リフレクションによってテスト メソッドにアクセスします。SecurityManager は、プライベート メソッドへのアクセスを制御できます。したがって、JUnit は、フレームワークによってアクセスされるすべてのものに対してパブリック メソッドとフィールドのみを使用します。

つまり、プライベート メソッドへのアクセスを許可しない SecurityManager がアクティブな場合、JUnit はプライベート テスト メソッドの実行に失敗します。

于 2013-10-10T20:36:19.213 に答える
0

試す

@Test
public void testAdd(){ }

testAdd メソッドはプライベートであるため、それを行うことはできません。

于 2013-10-10T03:30:44.057 に答える