我的目标是获得一个包的资源。
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
.
暂无答案!
目前还没有任何答案,快来回答吧!