【问题标题】:What are test cases in scheme and how do I use them?什么是方案中的测试用例以及如何使用它们?
【发布时间】:2013-09-18 03:42:53
【问题描述】:

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

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

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

提前谢谢你。

【问题讨论】:

    标签: scheme


    【解决方案1】:

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

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

    (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)
    

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

    【讨论】:

    • 感谢您的帮助。我想我理解为什么现在运行测试用例,但是,我的方案版本(MIT/GNU)不使用语法(检查期望),因为它将它解释为一个未绑定的变量
    • @user2789945 MIT/GNU Scheme 不提供check-expect。首先在谷歌上搜索一个好的 MIT/GNU Scheme 测试框架,然后阅读它的文档。问你的导师/朋友/等。看看他们正在使用什么工具
    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 2022-01-10
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    相关资源
    最近更新 更多