2016-11-16 7 views
0

enter image description here기능 코드 적용 범위 100 %

다음은 어떻게 수정해야합니까? 여기 내 기능은 0 % 적용 범위로 표시됩니다. 후행 중괄호가 실패하고 0 %의 적용 범위를가집니다.

else에 return null을 추가하면 실패합니다 (당연히 - 실패하지 않아야 함). 내가 널을 유지하고과 같이 한 줄에 모두 넣을 경우

if($this->save()){ return true; } return null; 

를 그럼 전달합니다. 나는 테스트를 처음 받았고 여기서 내가 잘못하고있는 것이 확실하지 않은가?

enter image description here

+0

아마도'return null; – JustOnUnderMillions

+0

null 대신 false를 반환하면 어떻게 될까요? if ($ this-> save()) {return true; } false를 반환; –

+0

Cant가 정말로 말하길,이 '커버리지 기능은 Xdebug 확장에 의해 제공되었습니다.'그래서 PHPUnit 자체가 아니라 xdebug에서 정보를 얻습니다. 내가 무엇을 기울여도 실제로는 도움이됩니다. – JustOnUnderMillions

답변

2

100 %의 코드 커버리지는 각 기능마다 하나의 결과를 테스트하는 것을 의미한다. 귀하의 return null 행은 귀하의 시험이이 행으로 분기하지 않으므로 적용되지 않습니다.

적용 대상으로 표시하려면 $this->save()false 인 테스트가 필요하며 테스트 방법이 null과 같아야 함을 테스트하십시오.

경우에 따라 100 % 코드 범위를 확보하는 것이 불가능하거나 일부 매우 어리석은/이상한보고 테스트로 이어질 수 있습니다. 이 경우 특정 행을 테스트하는 것을 무시할 수 있습니다.

편집 : 당신이 true 또는 false, 대신 truenull를 반환하는 코드를 다시 작성하는 경우, 당신이 당신의 방법을 다시 쓸 수있다 :이 코드는 100 %의 코드 커버리지가 있어야

$expression = new Expression('SYSDATE'); 
$this->last_login = $expression; 
return $this->save(); 

.