mocha 测试没报错但是没有显示绿色箭头

mocha test no error but did not show green arrow

我有 index.js 并且有这样的方法

const Calculate = {
  exponential(base, power) {
    let accumulator = base

    for(let iterator = 0; iterator < accumulator; iterator++) {
      accumulator *= base;
    }
    return accumulator
  }
}

module.exports = Calculate;

我的测试套件在这里

const assert = require('assert');
const Calculate =  require('../index.js')

describe('Calculate', () => {
  describe('.exponential', () => {
    it('returns the result of a base raised to a power', () => {
      const base = 3
      const power = 2
      const expected = 9

      const result = Calculate.exponential(base, power)
      assert.equal(result, expected)
    })
  })
});

当我 运行 npm test 时,我没有看到任何错误,我的终端上没有绿色和红色指示器:https://i.stack.imgur.com/Bs2Hp.png

怎么回事?

你的 for 循环内的逻辑是无限的。 运行 测试使用 npm 运行 test 并相应地修改 package.json。

Package.json

{
  "name": "mocha-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "mocha": "^5.0.1"
  }
}

index.js

const Calculate = {
    exponential(base, power) {
        let result=1;
        for(let iterator = 0; iterator < power; iterator++) {
            result *= base;
        }
        return result;
    }
}

module.exports = Calculate;

test.js

const assert = require('assert');
const Calculate =  require('./index.js')

describe('Calculate', () => {
    describe('.exponential', () => {
        it('returns the result of a base raised to a power', () => {
            const base = 3
            const power = 2
            const expected = 9

            const result = Calculate.exponential(base, power)
            assert.equal(result, expected)
        });
    });
});

输出