Hardhat

Solidity-coverage 中的 % Branch 列是什麼?

  • March 1, 2022

solidity-coverage包輸出中,有一列叫% Branch,它是乾什麼用的?

yarn hardhat coverage

輸出:

---------------------------|----------|----------|----------|----------|----------------|
File                       |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
---------------------------|----------|----------|----------|----------|----------------|
contracts/                |       95 |     87.5 |    84.62 |       95 |                |
 Raffle.sol               |       95 |     87.5 |    84.62 |       95 |        153,157 |
contracts/test/           |      100 |      100 |      100 |      100 |                |
 LinkToken.sol            |      100 |      100 |      100 |      100 |                |
 VRFCoordinatorV2Mock.sol |      100 |      100 |      100 |      100 |                |
---------------------------|----------|----------|----------|----------|----------------|
All files                  |       95 |     87.5 |    84.62 |       95 |                |
---------------------------|----------|----------|----------|----------|----------------|

其他列有意義,但不是% Branch

基本上,它是涵蓋的控制語句的百分比。

分支的想法來自於條件語句,如 if-else、switch-case ……每個條件匹配都是分支。

分支

在程式碼中,它類似於:

if (a.isANumber) {
  // branch 1
} else {
  // branch 2
}

引用自:https://ethereum.stackexchange.com/questions/122516