java单元测试读文件数据_如何将文本文件资源读入Java单元测试?

本问题已经有最佳答案,请猛点这里访问。

我有一个单元测试需要使用位于src/test/resources/abc.xml中的XML文件。把文件的内容放到String中最简单的方法是什么?

另外,stackoverflow.com/questions/1656797/…

@尼基塔,尽管我的回答是肯定的,但这些问题并没有提到我认为是正确解决OP问题的方法的getResourceAsStream()。

@kirk,getresourceasstream将文件缓存在类加载器中。这是不必要的。

@Thorbj&248;rn,你的参考资料在哪里?在任何情况下,它肯定是方便和便携的,这实际上是必要的。

有关Android Studio,请参阅以下链接stackoverflow.com/a/33057561/3256989

耶戈尔256的回答不起作用。我的情况是getClass().getClassLoader().getResource("com/example/ninja.t‌​xt"));,我的资源文件位于com/example/ninja.txt。

最后,我找到了一个简洁的解决方案,这要归功于ApacheCommons:

package com.example;

import org.apache.commons.io.IOUtils;

public class FooTest {

@Test

public void shouldWork() throws Exception {

String xml = IOUtils.toString(

this.getClass().getResourceAsStream("abc.xml"),

"UTF-8"

);

}

}

工作得很好。文件src/test/resources/com/example/abc.xml已加载(我正在使用maven)。

如果将"abc.xml"替换为,例如,"/foo/test.xml",则将加载此资源:src/test/resources/foo/test.xml。

你也可以使用仙人掌:

package com.example;

import org.cactoos.io.ResourceOf;

import org.cactoos.io.TextOf;

public class FooTest {

@Test

public void shouldWork() throws Exception {

String xml = new TextOf(

new ResourceOf("/com/example/abc.xml") // absolute path always!

).asSt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值