2016-11-18 4 views
0

테스트에서 함수가 아직 호출되었는지 확인하려고합니다. 이 작업을 수행하려고하면 TypeError: Cannot read property 'match' of undefined 오류가 나타납니다. 내 함수에 sinon.spy()을 사용하도록 코드를 설정 한 다음 callCount을 확인하십시오. getMarketLabel항상 문자열을 반환합니다. 코드에서sinon 스파이 기능이 오류로 호출되었는지 확인하십시오.

beforeEach(() => { 
    marketLabelSpy = sinon.spy(getMarketLabel()); 
}); //please note this is in a describe block but didnt feel it was relevant to post it. marketLabelSpy is pre-defined. 

it('should be called',() => { 
    expect(marketLabelSpy).to.have.callCount(1); 
}) 
+0

getMarketLabel() 무엇을 반환 않습니다

는 단순히 함수에 대한 참조를 전달하는 기능에 sinon 스파이를 사용하려면? sinon 스파이를 첨부하려면 sinon.spy (func) 또는 sinon.spy (object, "method")를 수행하거나 sinon.spy()를 함수 자체로 사용해야합니다. – DevDig

+0

원래 게시물을 편집했습니다. 'getMarketLabel'은 항상'string'을 반환합니다 – DaveDavidson

+0

저는 이것이 의미가 있다고 생각하지 않습니다. sinon 스파이를 사용하는 방법을보십시오 : http://sinonjs.org/docs/#spies, 문자열을 취하는 sinon.spy 메소드가 없습니다. . – DevDig

답변

1

, 당신은 당신의 스파이를 설정하는 데 사용됩니다 getMarketLabel 기능 (문자열입니다) 함수 호출의 결과를 호출 : 다음은 내 코드입니다. 그건 의도 한대로 작동하지 않습니다.

beforeEach(() => { 
    marketLabelSpy = sinon.spy(getMarketLabel); 
}); 
+0

괜찮아요.하지만 한 걸음 더 가깝습니다. 그러나 테스트는 0 번 호출 되었기 때문에 통과하지 못합니다. 그것을 호출하기 위해 함수에 문자열을 전달해야합니다. – DaveDavidson

+0

'getMarketLabel(); expect (marketLabelSpy) .to.have.callCount (1); ' – DevDig

+0

@DevDig는 스파이가 아니라 원래 함수를 호출합니다. – robertklep