Какое эмпирическое правило говорит мне, когда фигурная скобка должна считаться "покрытой" или "не покрытой"?
Существует "Edge Cases" section in the phpunit documentation
но это, по-видимому, не завершено, как я узнал в последние дни просмотра:)
То, что я лично никогда не видел, - это ваш второй пример неудачный.Я также не мог воспроизвести это: я не мог найти комбинацию PHP / xDebug / PHPUnit, где это не сработало.(Воспроизведите ниже)
То же самое относится и к другому случаю, который вы показали.Для всех я мог протестировать обе закрывающие скобки, которые были определены как «не выполнимые / достижимые», как и следовало ожидать.
Так что для обоих этих случаев не нужно // @ codeCoverageIgnore или // @ codeCoverageIgnore [Start | End].
Как @Derick предложил в комментариях для дальнейшего анализа в целомпотребуется файл.
Воспроизвести
<?php
class Foo
{
public $myProperty;
public function myMethod()
{
$this->myProperty = '1';
}
}
<?php
require __DIR__ . '/closingBrace.php';
class FooTest extends PHPUnit_Framework_TestCase {
public function testMyMethod() {
$x = new Foo();
$x->myMethod();
}
}
Запуск phpunit --coverage-text fooTest.php
Code Coverage Report
2012-01-12 10:17:32
Summary:
Classes: 100.00% (1/1)
Methods: 100.00% (1/1)
Lines: 100.00% (2/2)
, который только отмечает $this->myProperty = '1';
, что его закрывающая скобка является исполняемым.