gpt4 book ai didi

reactjs - 在测试中用 Jest 更改 process.env 变量

转载 作者:行者123 更新时间:2023-12-04 12:42:54 25 4
gpt4 key购买 nike

我正在尝试测试一个函数,它有多个 if带有来自 process.env 的变量的语句.

我试图在 jest 中编写测试像这样:

beforeEach(() => {
delete process.env.REACT_APP_API_KEY;
delete process.env.REACT_APP_URL;
});

it('no URL', () => {
process.env.REACT_APP_API_KEY = 'api_key';

try {
buildUrl(mockMethod, null);
} catch (err) {
expect(err.message).toBe('REACT_APP_API_KEY is not specified!');
}
});

it('no method', () => {
process.env.REACT_APP_URL = 'mock_url';
process.env.REACT_APP_API_KEY = 'api_key';

try {
buildUrl(mockMethod, null);
} catch (err) {
expect(err.message).toBe('REACT_APP_API_KEY is not specified!');
}
});


但问题是变量在每次测试后都不会被删除。它们以某种方式被缓存,不再设置。

也许有人遇到过这个问题,并对如何解决它有一些提示。

最佳答案

我设法解决了我的问题,罪魁祸首是我正在解构process.env文件上部的值 - 不是函数本身 + 我正在重命名它们。

const buildUrl = (method: string, page: number = 1): string => {
const { API_KEY, URL } = process.env;
//...

// vs

const {
API_KEY: MY_API_KEY,
URL: MY_URL
} = process.env;

const buildUrl = (method: string, page: number = 1): string => {
const MY_API_KEY = ...

关于reactjs - 在测试中用 Jest 更改 process.env 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51979513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com