![]() |
1
10
我将测试边界条件(max int,min int,zero,positive,negative)和一些典型情况:
等. |
![]() |
2
5
有几种哲学。Roy Osherove,作者 The Art of Unit Testing 似乎 prefer using explicit values ,并选择每个 Equivalence Class . 这一原则并不能很好地应用到您的示例中,但在许多其他场景中都非常有效。 例如,如果一个类需要一个正整数的输入,您可以选择 一 因为它是所有正整数的最简单表示。 就我个人而言,我更喜欢我所说的原则 Constrained Non-Determinism . 这里的要点是,我们让某种类型的工厂为我们提供给定类型的匿名变量,因为它迫使我们在测试中直接建立关系。 我在用 AutoFixture 为此(但您也可以使用其他方法),因此在本例中,我将测试sumcalculator,如下所示:
原则上,这个测试提供了
规范
对于计算方法。我们永远不知道
|
![]() |
3
3
如果你在测试数学函数,我建议你应该用它的反函数来测试它,例如:对于do x=a+b的函数,你应该测试它是否a-x=-b和x-b=a,这只是为了说明,当然它不会在所有情况下都起作用。 |
![]() |
4
1
另一种选择是使用 Parameterized Test Case 移除 复制 在测试中。基本上,一个表以元组形式([term1,term2,sum])包含测试的所有数据,然后一个testcase在调用参数化的testcase以测试表中的一行时在表上迭代:
我还将在这里添加负(溢出)测试:什么是
|
![]() |
5
1
见大卫萨夫的理论测试工作; here (PDF) 就是一个例子。这基本上是一种断言的方式,即对于某个集合中的所有值(包括所有可能值的集合),某个东西(比如一个函数是其函数的逆函数)都是真的,并将该断言表示为一个测试。通过使用随机选择的值运行测试(如果集合太大而无法完全运行),并自动将失败记录为特定的具体回归测试,您可以做一些有趣的事情。 |
![]() |
S4beR · jest-手表模式错误 7 年前 |
|
M.C · 如何从Ruby TDD哈希数组中返回名称 7 年前 |
![]() |
Maverick94 · Python unitest不工作 7 年前 |
![]() |
erexo · Moq模拟。Of<Obj>vs new Obj(); 7 年前 |
![]() |
jpuriol · JUnit测试中的“单例” 7 年前 |
![]() |
Py.Jordan · 如何在Python中模拟用户输入 7 年前 |