私は本当にTDDに入っています。私はjUnitでmockitoを使用してコードをテストする能力を向上させました。私は本当にモッキートを愛しています!引数でクラスをインスタンス化せずにパラメータの静的メソッドを呼び出す
できるだけ共同作業者をメソッドに渡し、可能な限りコンストラクタで行われる作業を制限するなど、コーディングに関する考え方を変更する必要があることに気付きました。
次のシナリオでは、ここで専門家からのアドバイスが必要です。
私はメソッドを持っていますが、それは特定のクラスでいくつかの静的メソッドを呼び出すことになります。例えば。
public void method(){
OtherClass.staticMethod();
}
これは一般的には悪いですが、私のシナリオでは必要です。私のユニットテストでコードをよりテスト可能にするために、私はOtherClassへの依存を避けて引数として渡したいと思います。
コンパイル時にエラーが発生するため、これは機能しません。
public void method(Class<? extends OtherClass> util){
util.staticMethod();
}
...
method(OtherClass.class);
これは動作しますが、それは単にメソッドのような静的なユーティリティのクラスだと、私は、する必要がない場合、私はインスタンス化OtherClassが好きではない:あなたに
public void method(OtherClass util){
util.staticMethod();
}
...
method(new OtherClass());
私の質問: 新しいキーワードを使用せずにこれを達成するより良い方法がありますか?あなたのコードサンプルで
新しいユーザーのための非常に整形式の質問、おめでとうございます。 – MarioDS
'OtherClass'のサブクラスのインスタンスを渡すと、あなたの最後のコードが単語になるかどうかわかりません。インスタンスを介して静的メソッドにアクセスすることは、**インスタンス**に関連していないため、混乱しているように思えます。 –
ところで、あなたのケースでは静的メソッドの代わりに**シングルトンパターン**を使用しますか? –