This commit is contained in:
Xargin
2016-10-05 13:29:05 +08:00
parent 99690fd663
commit 54eda31c00
8 changed files with 9 additions and 9 deletions

View File

@@ -2,7 +2,7 @@
就其性质而言测试不可能是完整的。计算机科学家Edsger Dijkstra曾说过“测试能证明缺陷存在而无法证明没有缺陷。”再多的测试也不能证明一个程序没有BUG。在最好的情况下测试可以增强我们的信心代码在很多重要场景下是可以正常工作的。
对待测程序执行的测试的程度称为测试的覆盖率。测试覆盖率并不能量化——即使最简单的程序的动态也是难以精确测量的——但是有启发式方法来帮助我们编写有效的测试代码。
对待测程序执行的测试的程度称为测试的覆盖率。测试覆盖率并不能量化——即使最简单的程序的动态也是难以精确测量的——但是有启发式方法来帮助我们编写有效的测试代码。
这些启发式方法中,语句的覆盖率是最简单和最广泛使用的。语句的覆盖率是指在测试中至少被运行一次的代码占总代码数的比例。在本节中,我们使用`go test`命令中集成的测试覆盖率工具,来度量下面代码的测试覆盖率,帮助我们识别测试和我们期望间的差距。
@@ -89,7 +89,7 @@ $ go tool cover -html=c.out
![](../images/ch11-03.png)
绿色的代码块被测试覆盖到了,红色的则表示没有被覆盖到。为了清晰起见,我们将背景红色文本的背景设置成了阴影效果。我们可以马上发现unary操作的Eval方法并没有被执行到。如果我们针对这部分未被覆盖的代码添加下面的测试用例然后重新运行上面的命令那么我们将会看到那个红色部分的代码也变成绿色了
绿色的代码块被测试覆盖到了红色的则表示没有被覆盖到。为了清晰起见我们将背景红色文本的背景设置成了阴影效果。我们可以马上发现unary操作的Eval方法并没有被执行到。如果我们针对这部分未被覆盖的代码添加下面的测试用例然后重新运行上面的命令那么我们将会看到那个红色部分的代码也变成绿色了
```
{"-x * -x", eval.Env{"x": 2}, "4"}