2017-01-30 8 views
0

私はただMochaから始めています。私はこれを理解するのに苦労しています。Nodeモジュールの関数がMochaを使って呼び出されたことをテストする方法

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

と私はモジュール(myModule.js)があります:

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

、私が好きなものにし

のは、私は、このノードアプリ(app.jsを)持っているとしましょうテストapp.jsを行い、関数startPointを呼び出すとmyModule.myFunctionが呼び出されることを検証します。モカで私はどうしたらいいですか?

ありがとうございました!

+1

チャイ。 Look [this](http://stackoverflow.com/questions/26704677/how-do-i-test-if-a-function-calls-a-specific-method-function) –

+0

'startingPointを呼び出すのは難しいでしょう'あなたがapp.jsの外にエクスポートすることを断る限り) –

答えて

-1

mocha、chaiと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

関連する問題