我想对一个操作文本文件内容的类进行单元测试.我有一组现有的文本文件作为测试用例.我如何以及在何处存储JUnit测试将使用的这些文本文件?
我已经尝试将它们与单元测试.Java文件放在同一目录中并尝试访问它们,但是我找不到一个文件:
File baseFile = new File("base_test.txt");
assertTrue(baseFile.exists());
Run Code Online (Sandbox Code Playgroud)
编辑:
根据答案,我尝试使用文件ClassLoader.文件在那里,但是当我尝试使用InputStream那些文件时,我得到了一个"Stream Closed"例外.
我试过InputStream从文件和URL中获取两者:
FileInputStream in = new FileInputStream(new File(filename));
...
InputStream in = baseUrl.openStream();
Run Code Online (Sandbox Code Playgroud)
同样的例外.
您可以将文件放在类路径的根目录中(/bin例如),然后您可以使用流来访问它
getClass().getClassLoader().getResourceAsStream("/test.txt")
Run Code Online (Sandbox Code Playgroud)
如果您的类打包为jar文件,这甚至可以工作.
如果您需要访问该文件,可以使用
File file = new File(getClass().getClassLoader().getResource("/test.txt").toURI());
Run Code Online (Sandbox Code Playgroud)
当然,如果您想将文本文件放在测试类或其他文件夹旁边,则可以使用
File file = new File(getClass().getClassLoader().getResource("/net/winklerweb/somepackage/test.txt").toURI());
Run Code Online (Sandbox Code Playgroud)
或任何其他路径......
| 归档时间: |
|
| 查看次数: |
6610 次 |
| 最近记录: |