You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jest测试中图片、Base64编码数据的存放位置咨询

解决测试用例中Base64图片可读性问题的方案

你可以通过存放实体图片文件+在测试代码中动态转Base64的方式解决这个问题,既保持代码整洁,又能满足测试需求,具体步骤如下:


1. 规划测试资源目录

在你的测试目录下创建一个__fixtures__文件夹(这是Jest生态中约定俗成的测试资源存储目录,Jest不会将其识别为测试文件执行),将用于测试的JPG图片(比如命名为test-image.jpg)放入该文件夹。

2. 在测试代码中读取图片并转换为Base64

使用Node.js内置的fs和path模块,同步读取图片文件并转换为Base64编码字符串,替换原测试用例中的占位内容:

const fs = require('fs');
const path = require('path');
const { detectBodyMime } = require('../../../src/common/http_utils.js');

test("detectsBase64EncodedImage", (done) => {
    // 拼接测试图片的绝对路径(跨平台兼容)
    const imageFilePath = path.join(__dirname, '__fixtures__', 'test-image.jpg');
    // 读取图片并直接转为Base64编码
    const content = fs.readFileSync(imageFilePath, { encoding: 'base64' });

    detectBodyMime(content, (err, mime, extension) => {
        expect(err).toBeNull();
        expect(mime).toBe('image/jpeg');
        expect(extension).toBe('jpg');
        done();
    });
});

额外注意事项

  • 若需测试其他类型的文件(如PNG图片、JSON文本等),只需将对应文件放入__fixtures__目录,重复上述读取逻辑即可
  • 使用path.join拼接路径可避免Windows和Linux平台的路径分隔符差异问题
  • 测试中使用readFileSync是安全的:仅在测试用例初始化阶段同步读取资源,不会阻塞后续异步的detectBodyMime调用

内容的提问来源于stack exchange,提问作者Dimitrios Desyllas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:47:20