【发布时间】:2015-02-08 19:24:27
【问题描述】:
我正在编写一个小测试来读取 CSV 文件(使用 testng)。 我找到了一些代码来执行此操作,并找到了一些其他行来查找资源文件夹本身。
现在我在其他场景中重复使用它,我认为我可以创建一个 util 方法而不是复制粘贴:
public static String prepFilepath(Class c) {
URL url = c.getResource("");
String location = url.getPath();
String packageName = c.getPackage().getName().replace(".", "/");
int l = location.lastIndexOf(packageName);
return location.substring(0, l);
}
我的测试这样调用它:
@Test
public void testImport(){
File testFile = new File(ImportUtils.prepFilepath(this.getClass()), inputFileName);
//...
}
但是我不知道这是否正确:
- 可以将类引用作为参数传递吗? (我以前从来没有为了这么小的目的这样做过)
- 还有更优雅的方式吗?
- 它的通用性足以证明该实用程序的合理性吗?
编辑: 我正在使用 testng
【问题讨论】:
-
注意可以让JUnit给你测试的名字:stackoverflow.com/questions/473401/…
-
为什么不使用 Class.getResourceAsStream() 从类路径加载 CSV 流?
-
这是一篇旧的 Javaworld 文章,描述了如何将属性文件加载为类路径资源;它适用于所有类型的文件:javaworld.com/article/2077352/java-se/…