Jest TypeError 不是函数

时间:2021-02-21 19:06:16

标签: javascript node.js asynchronous jestjs

我正在编写对星球大战 API swapi.dev 的简单调用的测试,只是学习了一些异步测试。

但是,我收到以下错误 TypeError: swapi.getCharacters is not a function

下面是我的功能

const fetch = require('node-fetch');

const getCharacters = async (fetch) => {
  try {
    const getRequest = await fetch.get('https://swapi.dev/api/people');
    const data = await getRequest.data;
    return {
      counts: data.count,
      results: data.results,
    };
  } catch (error) {
    console.error(error.message);
  }
};

module.exports = getCharacters;

这是我的测试

const fetch = require('node-fetch');
const swapi = require('./script2.js');

it('calls swapi to get star wars characters', () => {
  expect.assertions(2);
  return swapi.getCharacters(fetch).then((data) => {
    expect(data.count).toEqual(82);
    expect(data.results.length).toBeGreaterThan(5);
    expe;
  });
});

这是我的 package.json

{
  "name": "test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "test": "jest --watch *.js"
  },
  "devDependencies": {
    "jest": "^26.6.3",
    "node-fetch": "^2.6.1"
  }
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你应该做的:

module.export = {
  getCharacters : getCharacters
}

在您的 script2.js 文件中。