最近我不得不在没有任何断言的情况下看到一堆测试.那些测试必须是准确性测试.
我认为使用此类测试可以测试的唯一事情是检查在执行流程期间是否没有引发异常.但无论如何,我真的不明白我们如何在没有断言测试的情况下验证代码的准确性 - 即使是什么都不做的方法也可以通过这样的测试.
所以我想知道这些测试的目的是什么,还有什么可以测试呢?
这是一个示例(C#、NUnit):
[Test]
public void StartUpShutDownDoesntThrow() {
var aService = new Service();
aService.StartUp();
aService.ShutDown();
}
Run Code Online (Sandbox Code Playgroud)
如果此测试通过,则可确保以下内容:
这三件物品都很有价值,甚至可能是史诗般的。您可能会感到惊讶,有多少商业应用程序甚至没有像这样基本的东西作为其质量保证流程的一部分。
所以,是的,没有断言的测试也有其价值。
如果他们正在测试一些“遗留代码”,那么我将让他们有权存在-这些代码没有人真正掌握。不,如果他们在那里展示“高代码覆盖率”。
这是对代码有信心的第一步。看不见的检查是:“不抛出异常”。但是,一旦您将应用程序封装在类似此类的冒烟测试中,下一步就是将隐式检查变成显式检查-戴上您的思维上限,并提出可从测试中断言的可观察的更改。
您可以使用TestLint之类的工具来捕获此类测试。
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |