如何在运行JEST测试用例时将全局变量设置为true
How to set a global variable to true when running JEST test cases
在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。通过仅为测试而分叉逻辑,您就使单元测试无效,因为它们不再测试您的应用程序在现实世界场景中的代码流。
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 没有通过ajax调用设置Javascript全局变量
- 如何从jQuery设置控制器或全局变量的属性
- 使用eval()设置全局变量
- Ajax设置全局变量,但外部值消失
- 在jquery中设置多个全局变量的最佳方式
- 更新后,父视图未在 Electron 中的
上设置全局变量 - 全局变量设置在JavaScript验证中失败
- 为局部嵌套函数中的全局变量设置值
- 为什么在定义回调/侦听器函数(异步消息传递,port.on)后没有立即设置全局变量
- 如何在不设置全局变量的情况下确定是否已调用函数
- Javascript - 无法获取函数来设置要在函数外部使用的全局变量
- 在函数内设置全局变量
- jQuery / JS设置全局变量,但卡在传递给AJAX自定义函数
- 在 jsdom 加载的脚本中设置全局变量
- 如何在运行JEST测试用例时将全局变量设置为true
- 使用Webpack库和libraryTarget配置通过全局变量设置我们的自定义库
- 如何在javascript/angular中为函数内部的全局变量设置值
- 全局变量设置后未定义