有人可以建议一种简单的方法来获取对junit测试类中的String / InputStream / File / etc类型对象的文件引用吗?显然,我可以将文件(在这种情况下为xml)粘贴为一个巨大的字符串,或者将其作为文件读取,但是有一个特定于Junit的快捷方式吗?
public class MyTestClass{
@Resource(path="something.xml")
File myTestFile;
@Test
public void toSomeTest(){
...
}
}
5 回答
您可以尝试
@Rule
注释 . 以下是文档中的示例:您只需要创建扩展
ExternalResource
的FileResource
类 .Full Example
如果您需要实际获取
File
对象,则可以执行以下操作:这有利于跨平台工作,如this blog post中所述 .
我知道你说你不想手工阅读文件,但这很容易
您所要做的就是确保有问题的文件位于类路径中 . 如果您正在使用Maven,只需将文件放在src / test / resources中,Maven会在运行测试时将其包含在类路径中 . 如果你需要做很多这样的事情,你可以把打开文件的代码放在一个超类中并让你的测试继承 .
你可以试试:
如果您想将测试资源文件加载为只包含几行代码并且没有任何额外依赖关系的字符串,则可以实现:
“\ A”匹配输入的开头,而且只有一个 . 因此,这将解析整个文件内容并将其作为字符串返回 . 最重要的是,它不需要任何第三方库(如IOUTils) .