Я использую PHPUnit 3.6.7, PHP_CodeCoverage 1.1.1 и Xdebug 2.1.2. Когда у меня PHPUnit записывает статистику покрытия кода в XML-файл в стиле клевера, он иногда показывает закрывающую фигурную скобку, которая не покрывается тестами.
Я вижу много дискуссий в Интернете о том, когда PHPUnit «достигает» закрывающих фигурных скобок, но я не понимаю общей концепции того, что происходит. Например, у меня здесь нулевое покрытие в одной строке:
if (is_array($foo)) {
foreach ($foo as $bar) {
if (property_exists($bar, 'baz')) {
return $bar;
}
}
} // this line has 0 coverage
return null;
А здесь:
class Foo
{
public $myProperty;
public function myMethod()
{
$this->myProperty = '1';
}
} // this line has 0 coverage
Другие классы в моем проекте не имеют этой проблемы; их закрытые фигурные скобки вообще не отображаются в файле XML, поэтому они не указаны как имеющие нулевое покрытие.
Я понимаю, что PHP_CodeCoverage 1.1.2 (еще не выпущенный) позволит мне поставить комментарий «// @codeCoverageIgnore» после закрывающей фигурной скобки, но пока это не будет доступно, я хочу знать, что происходит, чтобы я мог исправьте мои тесты, чтобы дать мне полное покрытие. Какое практическое правило подсказывает мне, когда фигурная скобка должна считаться «закрытой» или «непокрытой»?