2017-12-24 19 views
1

私は、オプションのdependency(Class.forName(...)でチェック)の利用可能性に応じて異なる動作をするコードを持っています。オプションの依存関係に基づいて動作を確認する方法

junitでこの動作を確認することは可能ですか、これを容易にするライブラリがありますか?

カスタムクラスローダーで新しいjunitプロセスをブートストラップするよりも良い方法があると私は考えています。

また、確認するクラス名を返すメソッドを疑似できます。次に、テストでは、ダミークラスまたは実際のクラスを使用できます。それでも、私は、実際のテストが欠けているオプションの依存関係を使用することを好むでしょう。

答えて

1

カスタムクラスローダーを作成することで、クラス/メソッドに提供されているクラスパスを完全に制御できます。クラスパスの動作を調整するには、そのクラスの存在をチェックする必要があります。

Spark libraryからこのコードをチェックしてください。クラスパスを動的に変更したり、オプションでクラスパス解決のデフォルトの順序(通常は親先)を逆にすることもできます。このような戦略を使用すると、簡単に必要な場合は、あなたもJavaCompilerを使ってその場で合成クラスを生成することができます

​​

のようなステートメントを使用してクラスパスを欺くことができます。

関連する問題