Javascript jest:如何在一个文件中测试多个函数?

Javascript jest:如何在一个文件中测试多个函数?,javascript,jestjs,Javascript,Jestjs,有没有办法用jest在一个文件中测试多个函数 在ch03.js中: var min = function(a, b) { if(a < b) return a else return b } // even/odd number checker var isEven = function(number) { n = Math.abs(number); if (n==0) return true; else if (n==1) retu

有没有办法用jest在一个文件中测试多个函数

在ch03.js中:

var min = function(a, b) {
  if(a < b)
    return a
  else
    return b
}

// even/odd number checker

var isEven = function(number) {
  n = Math.abs(number);
  if (n==0)
    return true;
  else if (n==1)
    return false;
  else {
    return isEven(n-2);
  }
}

module.exports = isEven;
我不希望每个小javascript函数都有单独的文件。 有没有办法在一个文件中测试多个函数?

您应该试试

当“需要”一个带有rewre的模块时,它会公开模块中变量的getter和setter,包括私有变量

像这样的方法应该会奏效:

jest.dontMock('../ch03');

var rewire = require('rewire');
var min = rewire('../ch03').__get__("min");

describe('min', function() {
  it('returns the minimum of two numbers', function() {
    expect(min(2, 3)).toBe(2);
    expect(min(22, 3)).toBe(3);
    expect(min(2, -3)).toBe(-3);
  });
});

这只是javascript递归的一个例子。如果是这样,非常糟糕的例子)它非常漂亮,没有使用任何模运算符:)是的,非常有效,并且通过使用全局变量是的,你是对的,我忘记了将n设为局部的。经过一段时间的实验,似乎重新布线和react不兼容。我一直收到这篇文章中描述的相同错误消息:
jest.dontMock('../ch03');

var rewire = require('rewire');
var min = rewire('../ch03').__get__("min");

describe('min', function() {
  it('returns the minimum of two numbers', function() {
    expect(min(2, 3)).toBe(2);
    expect(min(22, 3)).toBe(3);
    expect(min(2, -3)).toBe(-3);
  });
});