使用Chai在Mocha中测试带参数的函数返回

时间:2016-08-03 20:04:26

标签: function unit-testing return mocha chai

我写了一个基本的mocha单元测试来测试节点中的算法挑战。我想要一个带有chai库单元测试的mocha的例子,用插入的函数参数测试函数的返回。

// algorithm.js(函数)

var alg = function(num) {
  return num;
}

module.exports = alg;

// spec / algorithm.js(测试)

var path = require('path');
var expect = require('chai').expect;

var algorithm = require(path.join(__dirname, '..', './algorithm.js'));

describe('algorithm()', function () {
  'use strict';

  it('exists', function () {
    expect(algorithm).to.be.a('function');

  });

  /*    ******* What should this be *******     */
 it('should equal 1', function () {
    expect(algorithm.alg(1)).to.equal(1);
 });
});

我使用yeoman test-generator来生成节点设置。测试'alg'是否为函数的第一个测试通过,但我不知道在阅读文档后第二次测试应该是什么。

1 个答案:

答案 0 :(得分:2)

在答案文件中,它应该是:

module.exports = function(param) { // .... };

我想通了,正确的函数是expect(func).to.deep.equal(return);对于测试文件:

var path = require('path');
var expect = require('chai').expect;

var algorithm = require(path.join(__dirname, '..', './algorithm.js'));

describe('algorithm()', function () {
  'use strict';

  it('exists', function () {
    expect(algorithm).to.be.a('function');

  });

  /*    ******* This should be *******     */
 it('should equal 1', function () {
    var res = algorithm(1);
    expect(res).to.deep.equal(1);
 });
});