在react应用程序中,我在fetch()中使用相对URL将API请求发送到服务器。这在浏览器中运行良好,但是当我运行单元测试用例(JEST)时,isomorphic-fetch抛出错误,说只允许绝对URL。有没有办法处理这个错误?我正在尝试包装fetch()函数并使用它。像这样:
function customNodeFetch(url, options) {
var finalURL = (isTesting)? 'http://localhost:3000/' : url;
return fetch(finalURL, options);
}
在这里,我不知道在运行测试用例时如何将isTesting设置为true。我试图将常量放在配置中。但是,它不起作用。有没有其他方法可以解决它?
答案 0 :(得分:1)
我建议不要使用全局变量修改代码的行为以进行单元测试,而是建议注入测试值。您在示例中显示的函数已经将url作为参数接受,因此在运行测试时将localhost传递给该函数,并在代码运行时将实际URL传递给该函数。通过将逻辑分配给测试,您将使单元测试无效,因为它们不再测试您的应用程序在实际场景中所采用的代码流。