を呼び出し、ここでセットアップのパブリックメソッドへ:どのようにユニットテストをプライベートメソッドを呼び出し、それが今度は、Webサービスメソッド
public class ClassToTest{
public void doSomething(ObjectToWorkOn[] objects){
doPrivateStuff(objects);
}
private void doPrivateStuff(ObjectToWorkOn[] objects){
List<ObjectToWorkOn> validObjects=new ArrayList<ObjectToWorkOn>();
for(ObjectToWorkOn obj:objects){
if(obj.isValid())
validObjects.add(obj);
}
SomeWebService ws=new SomeWebService();
ws.processObjects(validObjects);
}
}
私はinvalidObjectsがフィルタリングされているかどうかを確認するために、公共doSomething
メソッドをテストする必要があります。あなたが見る通り、objects
を秘密のdoPrivateStuff
メソッドに渡します。そのメソッドは無効なオブジェクトをフィルタリングし、有効なオブジェクトをWebサービスメソッドに送信します。そのWebサービスメソッドは何も返しません。だから私は有効なオブジェクトだけがWebサービスメソッドに送られたかどうかについての手がかりがありません。このケースをテストできるように私は何を提案しますか?私はオブジェクトをモックするためにMockitoフレームワークを使用しています。
で呼び出されたことを確認することができますその中で何か他のことをしています(パラメータの検証など)。何かあれば、それは統合テストでしょう。 本当にユニットテストが必要な場合は、doPrivateStuff()関数をオーバーライドし、パススルーが発生することを確認してください。 – nixkuroi