2017-01-30 34 views
0

我只是在摩卡起步調用,我掙扎推測這一個。如何測試一個節點模塊中的功能是用摩卡

比方說,我有這個節點的應用程序(app.js):

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

,我有一個模塊(myModule.js):

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

現在,想什麼,我要do是測試app.js並驗證當我調用函數startingPoint時,myModule.myFunction被調用。我會如何去摩卡咖啡館呢?

謝謝!

+1

您可以使用柴。看[這裏](http://stackoverflow.com/questions/26704677/how-do-i-test-if-a-function-calls-a-specific-method-function) –

+0

這將是很難稱之爲'起點'只要你在app.js之外點出口:) –

回答

-1

讓我們考慮與摩卡咖啡,灣仔及chai-spy的方式。我已經出口startingPoint有權訪問它進行測試。

"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