有没有一种正确的方法来使用util方法来查找测试资源路径?

时间:2014-12-10 14:38:51

标签: java csv path

我正在编写一个小测试来读取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);
    //...
}

但我不知道这是否正确:

  • 将类引用作为参数传递是否可以? (我之前从未为这么小的目的做过那件事)
  • 有更优雅的方式吗?
  • 它是否足够通用以证明util?

修改 我正在使用testng

1 个答案:

答案 0 :(得分:0)

如果文件与类在同一个包中,那么我们可以通过这种方式获取文件的URL

URL url = getClass().getResource(fileName);

如果我们需要从URL获取文件,我们可以这样做

File file = new File(url.toURI());