模拟使用module.exports的模块的结构

时间:2018-08-16 17:02:04

标签: javascript data-structures module mocking jestjs

我有一个从NPM导入的模块。本质上,其结构如下:

module.exports = function a() {
  return 'a';
};

module.exports.b = function b() {
  return 'b';
};

在打印到控制台时,将产生以下结构:{ [Function: a] b: [Function: b] }

如何在不使用module.exports的情况下模仿此结构?我需要这个,以便可以在Jest中对其进行模拟。

我尝试了以下方法,但这些方法均无效:

const a = {
  function() {
    return 'a';
  },

  b() {
    return 'b';
  },
};

结果:{ function: [Function: function], b: [Function: b] }

并且:

function A() {
  this.b = function b() {
    return 'b';
  };

  return 'a';
}

结果:[Function: A]

我也尝试了其他几种方法,但是以上两种方法似乎是最有前途的。

1 个答案:

答案 0 :(得分:1)

module.exports只是一个变量,因此您可以完全遵循库代码,但可以将其分配给您选择的变量:

const a = function() {
     return 'a';
}
a.b = function() {
    return 'b';
}