@covers

在测试代码中用 @covers 标注来指明测试方法想要对哪些方法进行测试:

  1. /**
  2. * @covers BankAccount::getBalance
  3. */
  4. public function testBalanceIsInitiallyZero()
  5. {
  6. $this->assertEquals(0, $this->ba->getBalance());
  7. }

如果提供了此标注,则代码覆盖率信息中只考虑指定的这些方法。

表 B.1列出了 @covers 标注的语法。


表 B.1. 用于指明测试覆盖哪些方法的标注

Annotation (标注) 描述
@covers ClassName::methodName 指明所标注的测试方法覆盖指定的方法。
@covers ClassName 指明所标注的测试方法覆盖给定类的全部方法。
@covers ClassName<extended> 指明所标注的测试方法覆盖给定类以及其所有父类与接口的全部方法。
@covers ClassName::<public> 指明所标注的测试方法覆盖给定类的所有 public 方法。
@covers ClassName::<protected> 指明所标注的测试方法覆盖给定类的所有 protected 方法。
@covers ClassName::<private> 指明所标注的测试方法覆盖给定类的所有 private 方法。
@covers ClassName::<!public> 指明所标注的测试方法覆盖给定类的所有非 public 方法。
@covers ClassName::<!protected> 指明所标注的测试方法覆盖给定类的所有非 protected 方法。
@covers ClassName::<!private> 指明所标注的测试方法覆盖给定类的所有非 private 方法。
@covers ::functionName 指明所标注的测试方法覆盖给定的全局函数。