0
私はラケットと博士ラケットとの古典的なゲーム "スネーク"を構築しようとしています。オブジェクトを使ったラケットのユニットテスト
私は自分のコードの背後にある概念を理解しているかどうかを確認するために単体テストを使うのが好きです。
私は蛇のための2次元(2D)平面に位置する構造定義を作成しました:私はしようと
(define snake-example
(snake "up" (list (posn 1 1) (posn 1 2) (posn 1 3))))
:その後
(struct snake (dir segs))
(struct posn (x y))
を、Iは蛇例を作成私のヘビオブジェクトのセグにアクセスするには、私は電話します:
(snake-segs snake-example)
>> '(#<posn> #<posn> #<posn>)
(list (posn 1 1) (posn 1 2) (posn 1 3))
>> '(#<posn> #<posn> #<posn>)
私はこれをチェックするためのテストとrackunitを使用してみた場合しかし、それは動作しません:
(require rackunit)
(check-equal? (snake-segs snake-example) (list (posn 1 1) (posn 1 2) (posn 1 3)))
私はこの答えを得る:
FAILURE
actual: (#<posn> #<posn> #<posn>)
expected: (#<posn> #<posn> #<posn>)
name: check-equal?
location: (#<path:/home/pedro/Desktop/realm-of-racket/cap-6.rkt> 276 0 8425 81)
expression: (check-equal? (snake-segs snake-example) (list (posn 1 1) (posn 1 2) (posn 1 3)))
これはなぜ起こるのでしょうか?