如何获取'java'文件夹而不是'test'文件夹的资源?

avkwfej4  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(171)

我的目标是获得一个包的资源。

String packageName = "looslycoupled";
ClassLoader.getSystemClassLoader().getResourceAsStream(packageName.replaceAll("[.]","/"));

这行代码在9/10的时间内完成了任务。但是,如果您使用创建单元测试,那么
java/looslycoupled/framework/util/packagescanner.java

public class PackageScanner {
  public Stream getResources(String packageName) {
    InputStream input = ClassLoader.getSystemClassLoader().getResourceAsStream(packageName.replaceAll("[.]","/"));
    return new BufferedReader(new InputStreamReader(input)).lines();
  }
}

test/looslycoupled/framework/util/packagescannertest.java

public class PackageScannerTest {
  private PackageScanner scanner;

  @BeforeEach
  void setUp() {
    this.scanner = new PackageScanner();
  }

  @Test
  void getResources() {
    scanner.getResources("looslycouped"); // this will return the resources Stream of `test/looslycoupled` instead of `java/looslycoupled`.
  }
}

我的预期结果是:它返回资源流 java/looslycoupled .
我的实际结果是:它返回资源流 test/looslycoupled . 它使junit变得无用,因为它测试自己,而不是中的类 java/looslycoupled .

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题