W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在測試代碼中用 ?@covers
? 標注來指明想要對代碼的哪些部分進行測試:
/**
* @covers \BankAccount
*/
public function testBalanceIsInitiallyZero(): void
{
$this->assertSame(0, $this->ba->getBalance());
}
如果提供,這將有效地過濾代碼覆蓋率報告,將其限制為僅包括所指代碼部分中的已執(zhí)行部分。這將確保代碼只在有針對它的專用測試覆蓋的情況下才會被標記為已覆蓋,而如果它被針對其他類的測試間接使用則并不會標記為已覆蓋,從而避免代碼覆蓋范圍的誤報。
此標注可以添加給測試類的文檔注釋塊,也可以添加給單個測試方法的文檔注釋塊。推薦的方法是將此標注添加給測試類的文檔注釋塊而不是測試方法的文檔注釋塊。
如果配置文件中的 ?forceCoversAnnotation
配置選項設(shè)置為 ?true
?,則每個測試方法都必須擁有相應的 ?@covers
? 標注(無論是在測試類還是單個測試方法上)。
表格 2.2 展示了 ?@covers
? 標注的語法。 指明覆蓋的代碼部分這部分有關(guān)于使用此標注的更長一些的示例。
請注意,此標注要求用完全限定類名(FQCN,fully-qualified class name)。為了讓讀者更容易理解,推薦寫上開頭的反斜杠(雖然此標注并不要求如此也能正常運行)。
表格 2.2 用于指明測試覆蓋哪些方法的標注
標注 | 描述 |
?@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 ?(推薦) |
指明所標注的測試方法覆蓋給定的全局函數(shù)。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: