자바 스크립트 파일에서 window.setInterval 함수를 테스트하는 데 어려움이 있습니다.문제 단위 테스트 자바에서 setInterval 함수
var dummy = false; // global variable not set anywhere else
var INTERVAL_TIME = 20; // global variable not set anywhere else
function myFunction()
{
var id = window.setInterval(function() {
if (...)
{
window.clearInterval(id);
}
else
{
if(...)
{
dummy = true;
}
}
}, INTERVAL_TIME);
}
그리고 JsTestDriver에 다음 테스트 코드가 있습니다 :
TestMyFunction.prototype.test_myFunction() {
myFunction();
assertTrue(dummy);
}
매번 테스트가 실행을 아래 시나리오는 기본적으로 제가 테스트 할 기능에 setInterval을 기능을 가지고입니다 ... , 그것은 실패하고 dummy가 false라고 말합니다. 마치 전체 setInterval 함수가 호출되지 않은 것처럼 말입니다. 나는 아무런 성공도없이 그 간격으로 놀아 보려고 노력했다. else 절에 경고를두면 잠시 후에 나타 났으며 사라졌습니다 (테스트는 여전히 실패합니다).
코드가 작동합니다. 필자는 타이밍 문제라고 생각합니다. 테스트가 setInterval 함수보다 먼저 완료되어 더미가 true로 설정되지 않는다고 불평합니다. 이 문제에 대한 모든 제안/해결책?
감사합니다.
작업 코드를 어떻게 사용하고 있습니까? –