scheme中的测试用例是什么?我如何使用它们?

scheme中的测试用例是什么?我如何使用它们?,scheme,Scheme,我是scheme的完全初学者,我想知道测试用例是什么,甚至想做什么。 例如,如果我想为我已经编码和测试过的负根二次函数编写一个测试用例,我将如何做 (define (quadnegative a b c) (* (/ (+ (sqrt (-(square b) (* 4 a c))) b) 2 a) -1)) ;Value: quadnegative (quadnegative 1 3 -4) ;Value: -4 提前感谢。首先查看解释器的文档以了解具体细节,例如,在Racket中是现成的

我是scheme的完全初学者,我想知道测试用例是什么,甚至想做什么。 例如,如果我想为我已经编码和测试过的负根二次函数编写一个测试用例,我将如何做

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

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

提前感谢。

首先查看解释器的文档以了解具体细节,例如,在Racket中是现成的测试框架

本质上,测试用例将比较表达式的实际值和预期值——如果它们匹配,则测试成功。下面是一个基本的例子,说明这在Racket中是如何工作的(假设您选择了合适的语言,如“初学者”):

上述操作将产生如下输出:

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)

然后,测试返回虚值的输入。。。等等在测试中尽量全面,涵盖尽可能多的情况,特别是可能导致输出值“奇怪”的异常或“怪异”情况。

感谢您提供的有用答案。我想我理解为什么现在运行测试用例,但是,我的scheme版本(MIT/GNU)没有使用语法(check expect),因为它将它解释为未绑定的variable@user2789945MIT/GNU方案不提供
check expect
。首先,通过谷歌搜索MIT/GNU方案的良好测试框架,并阅读其文档。询问您的讲师/朋友/等,了解他们正在使用什么工具
(check-expect (quadnegative 1 3 -4) -4)