方案中的测试用例是什么?如何使用它们?

时间:2013-09-18 03:42:53

标签: scheme

我是计划的完全初学者,想知道测试用例是什么,甚至是什么。 例如,如果我想为已经编码和测试的负根二次函数编写测试用例,我该怎么做?

(define (quadnegative a b c)
(* (/ (+ (sqrt (-(square b) (* 4 a c))) b) 2 a) -1))
;Value: quadnegative

(quadnegative 1 3 -4)
;Value: -4

提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先查看解释器的文档以获取具体细节,例如在Racket中here是开箱即用的测试框架。

本质上,测试用例会将表达式的实际值与期望的值进行比较 - 如果它们匹配,则测试成功。以下是在Racket中如何工作的基本示例(假设您选择了适当的语言,例如“Beginning Student”):

(define (add-one x)
  (+ 2 x)) ; an error!

(check-expect (* 21 2) 42)   ; test will succeed
(check-expect (add-one 1) 2) ; test will fail

以上将产生如下输出:

Ran 2 tests.
1 of the 2 tests failed.

No signature violations.

Check failures:
    Actual value 3 differs from 2, the expected value.
at line 5, column 0

对于您的测试,尝试设想感兴趣的测试值。为返回实际值的输入写一些测试:

(check-expect (quadnegative 1 3 -4) -4)

然后,测试返回虚数值的输入......等等。尽量在测试中尽可能彻底地覆盖尽可能多的案例,特别是可能导致“奇怪”输出值的异常或“怪异”案例。