java中单元测试期间的类路径

时间:2016-03-03 06:45:52

标签: java unit-testing junit classpath

我在/ src / main / java中有一个文件,其中包含以下代码行:

upload.any()

并且相应的资源文件存在于/src/main/resources...但我们正在考虑从类路径(src / main / resources)文件夹中删除此test.json,我们将包含一个jar依赖项和那个jar会包含这个test.json ...我已经测试了jar依赖项,它的工作正常,因为它将在classPath中。但问题是我们有一些测试用例..如果我们不包括jar,这些将失败依赖...是否可以通过将此文件放在src / test / resources文件中来运行测试用例。没有给出jar依赖项..

2 个答案:

答案 0 :(得分:0)

试试这个,我不确定但它应该有效:

URL fileUrl = Test.class.getResource("test.json");
File testFile= new File(FileLocator.toFileURL(fileUrl).getPath());

答案 1 :(得分:0)

见这个。

different-ways-of-loading-a-file-as-an-inputstream

这个对我有用:

项目:newfile

文件:

Test.java

package newfile.org;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}

myfile.txt的

It's my file

将jar库设置为其他项目:

MyClass.java

    package example;

    import newfile.org.Test;

public class MyClass {

     public static void main(String args[]) {

        try (
                InputStream resourceAsStream = Test.class.getResourceAsStream("myfile.txt")) {
                if(resourceAsStream == null) {
                    System.out.println("it's null");
                }
                int r;
                while((r = resourceAsStream.read()) != -1) {
                    System.out.println((char)r);
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

输出:

I
t
'
s

m
y

f
i
l
e