2019年4月10日水曜日

Unitテスト

 やはりUnitテストは書いておくべきだなぁ。
 そう痛感した今日この頃。ある程度の規模になると、ふとした修正が原因で動かなくなったことに気づかないことがある。なのでUnitテストは書いておいた方がいいんだけど、重いUnitテストだと、それを毎回、動かすのがかったるくなって動かさなくなってしまう。
 本末転倒だ。
 で、重いテストを一時的にコメントアウトしたりするのだけど——。
 ——もっといい方法はありませんかね?
 何か手があるような気がするのだけど。
 C言語の「#ifdef」のようなやり方。たしかCommonLispにもシステムごとにコードを切り替える方法があったことは覚えているんだけど、どうすれば、いいか、見つけ切れなかった。たしかリーダーマクロを使ったやり方なんだけど——どうやるんだっけ?
 とりあえず「when」で囲ってその場しのぎをしていたのだけれど。

 SWANKのソースをたまたま、のぞいたときにそれを発見した。
 ——#+nil

#+nil
(defimplementation disassemble-frame (index)
  (disassemble (debugger:frame-function (nth-frame index))))

 おおっ、これだよ、求めていたのは。
 しかもソースコードも色もちゃんとコメントアウトされたようにかわるじゃないか。