开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
  1. Home
  2. Computer Science
  3. This article

Java Unit 测试中如何获得 resources 中的文件

2020年10月29日 982Browse 0Like 0Comments

假定我们有一个文件位于:src/test/resources/data/azure_storage.json 目录中。

azure_storage.json 为数据文件,我们希望将这个文件中的内容读取到测试类中。

azure_storage.json 数据文件在编译成功后会被拷贝到:target/test-classes/data/azure_storage.json 目录中。

 

java-data-01

 

进行读取

在测试类中,我们可以在初始化数据的时候读取数据。

    /**
     * Init Data
     * @throws IOException
     */
    @BeforeAll
    public void setUp() throws IOException {
        ClassLoader loader = Thread.currentThread().getContextClassLoader();

        // INIT properties
        props.load(loader.getResourceAsStream("log4j.properties"));

        // INIT Azure Storage Test File
        try {
            InputStream inputStream = loader.getResourceAsStream(fileName);
            FileUtils.copyInputStreamToFile(inputStream, azureStorageFile);
        }
         catch (IOException e) {
            logger.error("Init data send to azure error." ,e);
        }
    }

fileName 使用下面的定义:

 private String fileName = "data/azure_storage.json";

需要注意的是 PATH,应该使用的是相对路径。

在数据初始化的时候,我们使用下面的代码:

InputStream inputStream = loader.getResourceAsStream(fileName);

先将资源文件中数据读取为 InputStream ,这个时候你的数据已经在内存中了,我们在上面的代码中使用代码 FileUtils.copyInputStreamToFile 来将内存中的数据写到一个临时目录中,然后你就可以对文件进行操作了。

当然你也可以直接使用 InputStream 来进行必要的下一步测试和操作就可以了。

使用这样的配置好处就是在测试的时候,因为不同的人使用的系统是不同的,不同的测试文件路径会导致没有办法进行路径的同步。

 

https://www.ossez.com/t/java-unit-resources/622

Tags: None
Last updated:2024年08月29日

HoneyMoose

有温度的人文和独立的思考

Like
< Previous
Next >

Comments

Cancel reply

Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (511)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1