我是一个完整的计划初学者,想知道测试用例是什么,甚至是做什么。例如,如果我想为我已经编码和测试过的负根二次函数编写一个测试用例,我该怎么做?
(define (quadnegative a b c)
(* (/ (+ (sqrt (-(square b) (* 4 a c))) b) 2 a) -1))
;Value: quadnegative
(quadnegative 1 3 -4)
;Value: -4
先感谢您。
我是一个完整的计划初学者,想知道测试用例是什么,甚至是做什么。例如,如果我想为我已经编码和测试过的负根二次函数编写一个测试用例,我该怎么做?
(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 中如何工作的基本示例(假设您选择了适当的语言,例如“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)
然后,测试返回虚值的输入......等等。尝试彻底地进行测试,涵盖尽可能多的情况,特别是可能导致“奇怪”输出值的不寻常或“奇怪”情况。