2013-07-09 2 views
0

언어를 확인하려면 (ES5) 브라우저간에 기능이 동일하게 작동합니까?for-in 루프를 테스트 할 때 어떤 점이 있습니까?

또는 필요하지 않은 강력한 제어 구조의 언어 구현입니까? 다음은 테스트의 한 예입니다. 해당 언어에 대한 루프의 구현을 작성하는 사람이 아니라면

var test_set = [null, undefined, NaN, true, false, 1, 'a',{test:'test'},[0], function(){}, /test/]; 

var index, 
    key; 

for(index = 0; index < test_set.length; index++){ 
    console.log('Mark | ' + test_set[index]); 
    for (key in test_set[index]) { 
     console.log(key); 
    } 
} 

답변

0

는 구조 테스트 아무 소용이 없다. 작성한 코드를 테스트하고 해당 언어가 의도 한대로 작동한다고 가정합니다.

물론 언어가 항상 설계대로 동작하는 것은 아니며 결함을 발견하면 신고해야하지만 자신의 코드 대신 기본 언어를 테스트하는 데 많은 시간을 투자하면 많은 낭비를 겪습니다 너의 시간.

1

로직이 아닌 구현을 테스트하는 것으로 간주해야합니다. 예, for-loop을 테스트하는 것은 어리석은 것처럼 보일 수 있지만, 테스트하는 것은 어리석지 않습니다. 무언가가 올바른 횟수만큼 추가됩니다. 오프 - 바이 - 원 오류가 있다면? 미래에 논리가 바뀌면 어떨까요? 테스트는 코딩 프레임 워크가 작동하는 것이 아니라 코드가 예상대로 작동하는 "증명"을 의미합니다.

기능/논리가 포함되어 있고 여러 브라우저에서 일관성이 있는지 테스트하고 싶다면 그 기능을 테스트하십시오. 앞으로 또 다시 변경 될 수 있습니다. 놓친 오류가 있습니다. 반면에 자바 프레임 워크 자체를으로 테스트한다면 (즉, for loop이 목록의 요소를 반복하도록 보장한다면) 테스트를 생략 할 수 있습니다.

1

아니요, for 루프가 예상대로 작동하는지 테스트하면 안됩니다. 실행중인 언어가 아니라 작성한 코드를 테스트하십시오.

전체 개념은 근본적으로 결함이 있습니다. 테스트가 JavaScript로 작성된 것을 알고 있습니까? JavaScript 구현을 신뢰할 수 없다면 어떻게하면 테스트의 유효성을 신뢰할 수 있습니까?

관련 문제