gpt4 book ai didi

unit-testing - 在 Racket 中通过一次测试检查多个输出

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:23 32 4
gpt4 key购买 nike

我正在尝试使用库 rackunit 做一些测试。

但是,我想通过一次测试检查多个输出,如下所示:

#lang racket

(require rackunit)

(check-equal? (add1 1) (* 2 1) (- 3 1) (+ 2 0))

如您所见,此测试应通过,因为所有输出均为 2。

但是,由于语法问题,这个测试失败了:

 check-equal?: bad syntax in: (check-equal? (add1 1) (* 1 2) (- 3 1) (+ 2 0))

有没有办法通过多个过程返回一个值来进行这种独特的测试?

查看 documentation我找不到它。

如果我不能做到这一点,我想我会重复自己......

最佳答案

如果您只是检查数字,就像 Gibstick 建议的那样,您可以只使用 check-true=。但是,如果您不测试数字,我们需要更有创意。

如果您要检查相等性的对象是可传递的:(又名,如果 (equal? a b)(equal? b c)(equal ? a c),您可以在循环中运行 check-equal?:

(define items (list 'items 'to 'check))
(define compare-item 'correct-item)
(for ([i (in-list items)])
(check-equal? i compare-item))

当然,如果项目相等性不可传递,那么您将需要检查每个项目与其他所有项目。您仍然可以使用循环来执行此操作,只是变得有点复杂。但是,一般来说,项目的相等性测试是可传递的。

关于unit-testing - 在 Racket 中通过一次测试检查多个输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41082141/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com