2016-01-18 2 views
0

Я использую php для тестирования своего кода. Вот пример:Использование @covers для класса

/** 
* @covers Calculator:: 
*/ 
class CalculatorTest extends PHPUnit_Framework_TestCase { 
    protected function setUp() { /* ... */ } 
    /** 
    * @covers Calculator::add 
    */ 
    public function testAddTwoIntegers() { /* ... */ } 
    /** 
    * @covers Calculator::multiply 
    */ 
    public function testMultiplyTwoIntegers() { /* ... */ } 
} 

Однако, мой код является сложным, и я хочу, чтобы избавиться от @covers над индивидуальными методами испытаний. Как PHP лечить следующий класс при генерации отчетов покрытия:

/** 
* @covers Calculator 
*/ 
class CalculatorTest extends PHPUnit_Framework_TestCase { 
    protected function setUp() { /* ... */ } 

    public function testAddTwoIntegers() { /* ... */ } 

    public function testMultiplyTwoIntegers() { /* ... */ } 
} 

Обратите внимание, что @covers аннотации над классом по-прежнему там, но я удалил его из каждого метода.

Я также могу получить отчеты о покрытии с использованием этого подхода, но я не видел его нигде, поэтому я хочу знать, не является ли это неправильным использованием.

Code Coverage Report: 
    2016-01-18 08:57:50 

Summary: 
    Classes: 17.67% (56/317) 
    Methods: 0.33% (5/1520) 
    Lines: 0.60% (109/18094) 

Class1: 
    Methods: 66.67% (2/ 3) Lines: 95.45% (21/ 22) 
Class2: 
    Methods: 50.00% (3/ 6) Lines: 96.70% (88/ 91) 

ответ

0

Почему бы не просто запустить тестовый пример и посмотреть покрытие с вашими изменениями? Вы рискуете попасть под голосование, поскольку задаете вопрос, не пробовав ничего.

От PHPUnit manual:

The @covers annotation (see Table B.1) can be used in the test code to specify 
which method(s) a test method wants to test. If provided, only the code 
coverage information for the specified method(s) will be considered. Example 
11.2 shows an example. 

Table B1 Referenced above

+0

Спасибо за обратную связь. Я сгенерировал отчеты и немного поработал над тем, чтобы удалить несколько методов тестирования, а затем восстановить отчеты и сократить охват. Итак, теперь мне интересно, правильно ли я использую его. – nerandell

+0

Хотя я не использовал это напрямую, @covers, по-видимому, не влияет на ваши результаты по показателям покрытия, но является скорее показателем того, что тестируется. Полученные тесты и охват затем используются для этого блока, когда я читаю руководство. –

Смежные вопросы