Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2011-06-11

CLでSRFI-78

| 22:35 | CLでSRFI-78 - わだばLisperになる を含むブックマーク はてなブックマーク - CLでSRFI-78 - わだばLisperになる

ぼんやりとSRFIをCLに移植していますが、今回は、SRFI-78 軽量テスト です。

CLにもユニットテストは色々ありますが、SRFIみたいなものである程度標準化されてるというのは良いですね

基本的な使い方は、 checkの中で、式と期待する値を=>を挟んで書く、というシンプルなものです。

例のごとくシンボルの扱いが面倒臭いので、=> ではなく:=>としてみています。

便利機能としては、SRFI-42と組合さったcheck-ecというものが用意されています。

(use-package :srfi-78)

(check (+ 2 2) :=> 4)
;->
;   (+ 2 2) :=> 4 ; correct
;
;=>

(check (+ 2 2) :=> 5)
;->
;   (+ 2 2) :=> 4 ; *** failed ***
;    ; expected result: 5
;
;=>

(check-ec (:range e 100)
          (:let x e)
          (and (< e 50) (< x 50)) :=> t (e x))
;->
;   (LET ((E 50) (X 50))
;     (AND (< E 50) (< X 50))) :=> NIL ; *** failed ***
;    ; expected result: T
;