1
2
我们所说的代码是什么意思?当单元测试时,我认为我们在这里讨论的是,我们在测试特定的方法和类。
换句话说,您正在调查某个代码是否满足契约。考虑这个例子:
还有什么?负利率怎么样?
接下来的问题是:我们如何找出这些测试用例。我不认为有一个单一的方法可以构建一个全面的集合,但这里有几点需要考虑:
|
2
4
没错-你知道该期待什么,并编写测试用例来涵盖这些知识。在许多方面,这是正常的-你想测试你写的东西,只是为了让你知道它的工作正如你所期望的。
然后你需要把它交给其他人来测试你-他们会很快找到你从未想过的东西。
这就是软件的工作方式,也可能是它从未完成的原因。 你的测试代码有一点比什么都重要——一旦你做了一次,发现它能按预期工作,你可以添加更多的东西到你的应用程序,然后再次运行你的测试代码,以确保它仍能按预期工作。这叫做回归测试,我认为这是编写自己的单元测试的唯一原因。 |
3
1
“测试驱动开发”的原则之一是先编写测试(即在编写代码之前)。显然,这个测试一开始会失败(你的程序甚至可能无法编译)。如果测试 不 另外,一些更流行的单元测试框架(如jUnit)将允许您测试某些东西是否工作或显式不工作(即,您可以断言抛出了某种类型的异常)。这对于检查错误输入、转角情况等非常有用。 要从stephencovey那里偷一句话,只需从结尾开始,并编写尽可能多的测试。这对于非常简单的代码来说似乎微不足道,但是当您处理更复杂的问题时,这个想法会变得很有用。 |
4
1
这个网站有很多测试代码的帮助资源。 SoftwareTestingHelp |
5
1
一旦编写了代码以便可以根据依赖关系和输入参数预见可能发生的情况,就应该编写测试,从各种可预见的情况中寻找正确的行为。我发现单元测试最大的优点之一是它实际上迫使我思考“如果……”,并找出每种情况下的正确行为。例如,我必须决定在出现某些错误时抛出异常还是返回空值更有意义。 一旦你认为你已经覆盖了所有的基础,你可能还想把你的代码扔到一个工具上,比如 QuickCheck 帮助您识别可能错过的可能性。 |
7
0
做得正确,你的测试就是你的规格。它定义了代码应该做什么。每个测试都定义了应用程序的一个新方面。因此,您永远不会编写测试来寻找无法正常工作的东西,因为您的测试指定了如何处理这些东西 正确工作。 一旦你认为你已经完成了单元测试和编码你的组件,最好最简单的方法之一就是使用一种叫做 Exploratory Testing ,这可以被认为是对您编写的应用程序部分的无脚本探索,基于您的直觉和经验(以及越轨行为!)查找bug。 |
mg610 · 如何开始C++单元测试 2 年前 |
vidhu · 无URL的自动化测试 2 年前 |
Aessandro · js开关站单元测试[关闭] 6 年前 |
AntoineLB · 断言后期工作Django 6 年前 |
ravikant · Selenium脚本不工作异常 6 年前 |