javascript - 开 Jest 测试 : TypeError: (0 , _rtb.disableAllAds) 不是一个函数

标签 javascript unit-testing jestjs

StackOverflow 上的一些问题与此类似,但这些建议并没有解决我的特定问题。我不使用 React,只使用纯 JS,并且我无法继续对此进行测试。任何帮助表示赞赏。 我对 Jest 测试还很陌生。 这是我得到的实际错误(我在第一个函数上得到它,所以第二个函数也可能会抛出错误) 我不明白的是它说它不是一个函数,但它显然是:

● Test suite failed to run

    TypeError: (0 , _rtb.disableAllAds) is not a function

       99 |
      100 | // check for noads and dhb to disable RTB and ads
    > 101 | export const disableAds = disableAllAds(qsc);
          |                           ^
      102 | export const disableHb = disableAllHb(qsc);

查看我的文件: 在我的索引文件中:

import {
  disableAllAds,
  disableAllHb,
} from "../src/rtb";

export const disableAds = disableAllAds(qsc);
export const disableHb = disableAllHb(qsc);

然后在 rtb.js 中:

import {
  disableHb,
} from '../index';

export const disableAllAds = (qsc) => (qsc.noads === true || (typeof window !== 'undefined' && window.noads === 'true')) ? true : false;
export const disableAllHb = (qsc) => (qsc.dhb === true || (typeof window !== 'undefined' && window.disableHB === 'true')) ? true : false;

我的测试文件 -tests/rtb.test.js:

import {
  disableAllAds, 
  disableAllHb, 
} from '../src/rtb';

如果我打开了 Jest --watch,我什至在触摸测试文件之前就会收到此错误。 我不确定为什么会这样,但我需要帮助解决这个问题,以便我可以继续编写测试。

非常感谢您的帮助!

最佳答案

我无法确定,但这对我来说似乎是“循环依赖”问题。

您是否从索引导入 rtb 并从 rtb 导入索引?

关于javascript - 开 Jest 测试 : TypeError: (0 , _rtb.disableAllAds) 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60748443/

相关文章:

javascript - JS openDatabase 有时会失败

javascript - 包含本地文件上的文件,无需服务器

javascript - 约束错误 : Key already exists in the object store

Javascript/JQuery 故障排除

unit-testing - Grails Spring Security登录 Controller 测试

reactjs - 如何使用 Jest 和 Enzyme 测试 ui-material TextField 的 onChange

webpack - $1 在 jest 配置中做什么?

reactjs - Jest 设置 "SyntaxError: Unexpected token export"

javascript - 如何在 if 条件下增加 for-in 循环中 jest 的分支覆盖率?

jestjs - 如何解决 Jest Mock 错误 "Cannot find module"