PHPUnitManual:14.4
- 14.4 Edge cases
대부분의 경우에, PHPUnit 은 "행 단위의 (line based)" code coverage 정보를 제공할 것입니다. 그렇지만, 이 정보 수집의 방법으로 인해 주의해야 할 Edge case 가 발생하는 경우가 있습니다.
예14.5
<?php
// Coverage 는 "문 단위" 가 아닌 "행 단위" 이기 때문에
// 한 줄에 쓰여진 여러 문장은, 하나의 Coverage 상태를 가집니다.
if(false) this_function_call_shows_up_as_covered();
// Code coverage 의 내부 동작에 의해, 다음 2행은 특별 취급됩니다.
// 다음 행은 "실행되지 않은 행" 으로 취급됩니다
if(false)
// 다음 행은 "실행 가능한 행" 으로 취급됩니다
// 구조적으로, 위 행의 if 문에 대한 coverage 정보가 여기에 표시되기 때문입니다
will_also_show_up_as_coveraged();
// 이런 문제를 피하기 위해서는, 다음과 같이 중괄호를 사용해야만 합니다
if(false) {
this_call_will_never_show_up_as_covered();
}
?>