2017-01-30 2 views
0

aufgerufen wurde Ich beginne gerade in Mocha, und ich habe Mühe, diese herauszufinden.Wie zu testen, dass eine Funktion in einem Knoten-Modul mit Mocha

Lassen Sie uns sagen, dass ich diesen Knoten app (app.js):

var myModule = require('./myModule'); 
function startingPoint() { 
    myModule.myFunction(); 
} 

und ich habe ein Modul (myModule.js):

exports.myFunction = function() { 
    console.log('hello, world'); 
} 

Nun, was ich möchte do ist app.js testen und validieren, dass, wenn ich die Funktion startingPoint aufrufen, myModule.myFunction aufgerufen wird. Wie würde ich das in Mocha machen?

Vielen Dank!

+1

können Sie chai verwenden. Schau [this] (http://stackoverflow.com/questions/26704677/how-do-i-test-if-a-function-calls-a-specific-method-function) –

+0

Es wird schwer sein, 'startingPoint 'zu nennen 'solange du nickst und es außerhalb von app.js exportierst:) –

Antwort

-1

Betrachten wir den Weg mit Mokka, Chai und chai-spy. Ich habe startingPoint exportiert, um Zugriff auf es im Test zu haben.

"use strict" 

const chai = require('chai') 
const expect = chai.expect 
const spies = require('chai-spies') 
chai.use(spies); 
const startingPoint = require('../app') 
const myModule = require('../myModule') 

describe('App',() => { 

    context('.startingPoint()',() => { 

     it('doesn\'t call .myFunction()',() => { 
      let spy = chai.spy.on(myModule, 'myFunction') 
      expect(spy).not.to.have.been.called() 
     }); 

     it('calls .myFunction()',() => { 
      let spy = chai.spy.on(myModule, 'myFunction') 
      startingPoint() 
      expect(spy).to.have.been.called() 
     }); 

    }); 

}); 

output from mocha test

Verwandte Themen