2017-04-07 12 views
0

私はprivate voidメソッドなので、setAddr()メソッドのテストケースを書くことができますか?junitとmockitoを使ってprivate voidメソッドのテストケースを書くには

+1

あなたのプライベートメソッドのテストを書くべきではありません。 – mpals

+3

[reflection](http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/ReflectionUtils.html)を使用してメソッドにアクセスするか、[PowerMock] (https://github.com/powermock/powermock) – ymonad

+0

ヒント:次回にお気に入りの検索エンジンを試してみましょう;-) – GhostCat

答えて

0

すべてのプライベートメソッドは、常にパブリックメソッドまたはアクセス可能メソッドの一部を直接または直接呼び出します。 ですので、は、ケースを書く必要はありません。あなたはそのためのテストケースを書きたい場合

はその後も続い使用:

ここ
Deencapsulation.invoke(SomeClassWherePrivateMethod.class, "methodName", argument1, argument2, argument3); 

Deencapsulationmockit.Deencapsulationからです。

Download jar from hereです。

0

前述のとおり、プライベートメソッドはテストしないでください。実装ではなく、常にあなたのクラスの契約をテストしてください。それ以外の場合、クラスの実装が変更された場合、偽のテスト結果が返されます。これは、クラスの動作が期待どおりであることを意味しますが、テストは失敗します。

privateメソッドに複雑なロジックがある場合は、別のクラスに抽出することを検討する必要があります。 このクラスはpackage-privateにすることができ、抽出したコードを再利用することもできます。

関連する問題