如何解决错误TypeError:x不是在Jest中测试以下函数的函数?

时间:2020-03-27 18:20:41

标签: javascript jestjs

我要测试的功能

function setWebsite(website){

    curWebsite = website;
    var r = /:\/\/(.[^/]+)/;
    myWebsite = website.replace(/^(https?:\/\/)?(www\.)?/,'');
    return myWebsite;

  }

测试文件夹中的代码

const { setWebsite } = require('./popup');
test('should give current website name', () => {
    const text = setWebsite('https://www.youtube.com/');
    expect(text).toBe('youtube');

});

错误消息

TypeError: setWebsite is not a function

1 个答案:

答案 0 :(得分:0)

要在另一个文件中使用功能,您需要将其导出:

function setWebsite(website) {

  curWebsite = website;
  var r = /:\/\/(.[^/]+)/;
  myWebsite = website.replace(/^(https?:\/\/)?(www\.)?/, '');
  return myWebsite;

}

module.exports.setWebsite = setWebsite;

您需要的是模块而不是功能:

const popupModule = require('./popup');
test('should give current website name', () => {
    const text = popupModule.setWebsite('https://www.youtube.com/');
    expect(text).toBe('youtube');

});
相关问题