2017-01-30 1 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

관련 문제