アプリケーションにJunitsは記述されていません。しかし、他のモジュールでは、Jmockitを使ってJunitsを書き始めました。したがって、コアJavaまたはJmockitソリューションはいずれも高く評価されます。Junit:インスタンスなしでプライベートメソッドを呼び出す
私はシングルトンであるアプリケーション初期化クラスを持っています。データベース[データロード]、プロパティファイルなどを呼び出してアプリケーションを初期化します。オブジェクトの作成は複雑です。
クラス[メソッド名addMoreInitilization]を初期化する新しいメソッドを記述しています。
私は上記のシナリオでJunitを書きたいと思っています。複雑なオブジェクト作成ロジックを呼び出さずにaddMoreInitilizationメソッドのためにJunitを書く方法はありますか?それらはすべて依存性があり、それらを嘲笑して実行可能ではなく、メソッドを静的にしたくないからです。
Class ApplicationStartUp {
private ApplicationStartUp applicationStartUp;
// assume single ton implemented
private ApplicationStartUp() {
// complex object creation
addMoreInitilization();
}
public static getInstance() {
}
// new method
private addMoreInitilization() {
// my logic needs to be tested using junit
}
}
プライベートメソッドを上書きすることはできません。それはあまり意味がありません。 – GhostCat
あなたは正しいです。それを見ていない。 – SebastianK
私が試した最初のことは、ApplicationStartUpクラスを拡張することでしたが、スーパークラスのprivateメソッドを呼び出すことはできません。また、他のものを使って試してみました。リフレクションはオブジェクトを初期化する必要がありますが、それは複雑なので努力する価値はありません。 b。 JMockitのDeencapsulationクラスですが、リフレクションとしての問題があります。 – Mahesh