2016-08-03 49 views
1

Ich schrieb einen grundlegenden Mocha Unit Test, um meine Algorithmen Herausforderungen in Knoten zu testen. Ich möchte ein Beispiel für einen Mokka mit Chai-Bibliothek-Unit-Test testen die Rückgabe der Funktion mit eingefügten Funktionsparameter.Testen Sie die Rückgabe von Funktionen mit Parametern in Mocha mit Chai

// algorithm.js (die Funktion)

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

module.exports = ALG;

// spec/algorithm.js (der Test)

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); 
}); 
}); 

I verwendet Yeoman Testgenerator den Knoten Aufbau zu erzeugen. Der erste Test, um zu testen, ob 'alg' eine Funktion ist, besteht, aber ich weiß nicht, was der zweite Test nach dem Lesen der Dokumentation sein sollte.

Antwort

1

In der Antwortdatei, sollte es sein:

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

ich es herausgefunden, die korrekte Funktion ist erwarten (func) .to.deep.equal (Rückkehr); für die Testdatei:

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); 
}); 
});