インタフェースの1つを実装している抽象クラスの1つをテストする必要があります。 抽象クラスに引数を持つコンストラクタがあります。 私はMockitoをテストフレームワークとして使用しています。 抽象クラスのメソッドを呼び出す必要がある場合は、どのような方法が最適ですか?引数を持つコンストラクタを持つ抽象クラスをテストします。
抽象クラスをサブクラス化しようとすると、引数コンストラクタを実装し、引数なしコンストラクタを記述しないように要求します。 また、引数なしのコンストラクタを持たないクラスを模擬してメソッドにsysoutsを入れようとすると、junitの失敗はありませんが、呼び出されることはありません(mockedクラスに必須の引数なしコンストラクタが必要ですか?
助けてください。前もって感謝します。
は、抽象クラスの引数コンストラクタは保護されていますか?また、私はパラメータ化されたスーパークラスをサブクラスから呼び出すと仮定しています。そうしないと、コンパイル時にエラーが発生します。コードを投稿できますか? @Ralphが示す最良の方法は、具体的なサブクラスを実装することです。通常は、複数の抽象クラスを階層化している場合は、実装する最終的な子孫です。抽象クラスのどれもが親からのメソッドをオーバーライドしていないという前提によって行くと、これは誤りの証明ではありません。その場合は、親メソッドとオーバーライドメソッドの両方をテストする必要があります。 – pmu