私は、JUnit 抽象テストとして書かれた軽量のテスト フレームワークに相当するものを持っています。私がやりたいことは、実装するサブクラスにそれぞれカスタム テスト クラスのセットアップを定義させることです。私の計画は@BeforeClass
、各サブクラスが強制的に定義する抽象設定メソッドを呼び出すメソッドを抽象スーパークラスに定義させることでしたが、@BeforeClass
メソッドは静的でなければならず、静的メソッドを抽象にすることもインスタンスメソッドを呼び出すこともできないため、これは失敗します。
ドキュメントに必要なものを含めるか、 をスローすることによって、サブクラスがセットアップを行うと仮定することIllegalStateException
もできますが、いくつかの理由から、インターフェイス レベルでこれを強制できるようにしたいと考えています。誰でもこれを回避する方法を考えられますか?
ちなみに、これらのテストをパラメーター化する際にも同じ問題がありました (サブクラスはパラメーターを定義しますが、@Parameters
注釈付きのメソッドは静的でなければなりません)。メソッドレベルのパラメーターを許可するサードパーティの JUnitParams ランナーを実行することで、これを回避しました。ここで確認してください: https://github.com/Pragmatists/JUnitParams