如何在运行JEST测试用例时将全局变量设置为true

How to set a global variable to true when running JEST test cases

本文关键字:全局变量 设置 true 测试用例 运行 JEST      更新时间:2023-09-26

在react应用程序中,我使用fetch()中的相对URL向服务器发送API请求。这在浏览器中运行得很好,但是,当我运行单元测试用例(JEST)时,同构获取会抛出错误,说只允许使用绝对url。有什么方法可以处理这个错误吗?我正在尝试包装fetch()函数并使用它

    function customNodeFetch(url, options) {
        var finalURL = (isTesting)? 'http://localhost:3000/' : url;
        return fetch(finalURL, options);
     }

在这里,我不知道如何在运行测试用例时将isTesting设置为true。我试着在配置中加入常数。但是,它不起作用。有其他方法可以解决吗?

我建议注入测试值,而不是使用全局变量来修改单元测试代码的行为。您在示例中显示的函数已经接受url作为参数,所以在运行测试时只需将localhost传递给该函数,在运行代码时传递一个真实的url。通过仅为测试而分叉逻辑,您就使单元测试无效,因为它们不再测试您的应用程序在现实世界场景中的代码流。