1
カスタムClassLoaderを単体テストする方法は?
いくつかの理由で、私は子供優先ClassLoaderです。そのようなClassLoaderものはJDKには存在しないので、私はそれを書いています。これは私のユースケースの主要なコンポーネントであるため、徹底的にテストしてほしい。動作を壊さずに変更されないようにするために、私は非常に徹底して、テスト可能なすべてのものを自動的にテストしたいと考えています。 どうすればテストできますか?基本的な単体テストを行うにはどうすればよいですか?(特にsuper各メソッドに少なくとも1つの呼び出しがあるため)どこから始めればよいかわからず、開始するためのガイドラインを探しています。 私の主なアイデアは次のとおりです。何か問題がありますか? /src/main/resources/parent.jar child.jar ファイルparent.jarにcom.example.Exampleは、基本的なSupplier戻り値であるクラスが含まれています"parent"。ファイルchild.jarにcom.example.Exampleは、基本的なSupplier戻り値であるクラスが含まれています"child"。 の標準URLClassLoaderを作成しparent.jar、カスタムClassLoaderを使用してをロードしますchild.jar。それから私は、クラスをロードしたいcom.example.Exampleと、それは実際に戻っていますことを確認してください"child"代わりに"parent"。 より複雑なテストケースが考えられますが、開始するには確認が必要です。これで基本的なテストはこれで十分ですか?これは本当に単体テストでテストする必要があるのですか?そうでない場合、何ですか? これにはコードは必要ないと確信していますが、好奇心旺盛な方のために、こちらに示しておきます。 import java.io.*; import java.net.*; import java.util.*; class ChildFirstClassLoader extends URLClassLoader { ChildFirstClassLoader(ClassLoader parent) { super(new URL[0], parent); } @Override // Make this method available in this package. protected void addURL(URL url) { super.addURL(url); } @Override protected Class<?> loadClass(String name, boolean resolve) …