2013-01-01 2 views
0

정기적으로 타이머를 사용하여 함수를 호출하는 구성 요소가 있습니다. 외부에서 나는 그 타이머의 속도를 구성 할 수 있습니다.비활성화 된 타이머의 단위 테스트

테스트는 기본적으로 간단합니다. 타이머를 설정하고 잠시 기다렸다가 함수 호출을 계산하고 예상 한 것과 비교하십시오.

이제 타이머를 비활성화하는 옵션도 있습니다. 그걸 어떻게 시험 할 수 있니?

타이머가 x + 1을 호출 할 수 있기 때문에 시간 x를 기다리는 것만으로는 충분하지 않습니다.

더 좋은 방법이 있습니까?

+0

자신의 타이머 또는 기존 구현을 사용합니까? – piotrek

+0

기존의 것, 실제로 그것은 JavaScript의'setInterval' 함수입니다. –

답변

1

사용자 언어의 기능을 테스트하지 마십시오. js가 당신에게 setInterval 메소드를 제공한다면 그것이 작동한다고 가정합니다. 코드에서 setInterval을 올바르게 호출하면 테스트해야합니다. 나는 js 테스트에 대해 많이 알지 못하지만, 가능하다면 그냥 조롱하고 호출되었는지 확인하십시오. 만약 당신이 그것을 모의 수없는 다음 간접적 인 수준을 하나 더 사용하십시오. 어떤 로직도없이 그냥 호출을 전달하면서 타이머에 대한 래퍼를 직접 만드십시오. 그런 다음 테스트에서 래퍼가 호출되었는지 여부를 확인할 수 있습니다. 테스트에서 대기/수면을 사용하지 마십시오.

+0

'setInterval' 함수를 테스트하고 싶지 않습니다. 특정 인터벌 시간 (또는 특별한 경우에는 전혀 사용하지 않음)을 사용하여 구성했는지 테스트하고 싶습니다. –

+0

다시 : js API를 사용하면 setInterval이 구성/호출되었는지 확인할 수 있고 등록 된 함수가 트리거 될 때까지 기다리지 않고 직접 할 수 있습니다. 그렇지 않다면, 콜백 함수를 등록하기 위해 자신 만의 레이어를 생성하고이 레이어가 적절히 구성/호출되었는지 테스트하십시오 – piotrek