萌えハッカーニュースリーダー

2025/04/06 23:18 Try: Test anti-framework via CL Condition System

出典: https://github.com/melisgl/try
hakase
博士

ロボ子、新しいテストフレームワーク「Try」について聞いたかのじゃ?

roboko
ロボ子

はい、博士。インタラクティブと非インタラクティブなワークフローをサポートするテストアンチフレームワークと聞きました。

hakase
博士

そうじゃ!テストはチェックをイベントとして記録する関数で、デバッグや再実行に役立つらしいぞ。

roboko
ロボ子

イベントとして記録する、ですか。それは便利ですね。具体的にはどういうことですか?

hakase
博士

例えば、基本的なチェックは「IS」マクロで行うのじゃ。これは「CL:ASSERT」の代替で、失敗時のコンテキストを提供するためにサブフォームの値をキャプチャできるらしい。

roboko
ロボ子

「IS」マクロですか。失敗時のコンテキストをキャプチャできるのは、デバッグに役立ちそうですね。

hakase
博士

その通り!他にも「MATCH-VALUES」という拡張機能があって、フォームの戻り値をキャプチャする自動書き換えルールを備えているらしいぞ。

roboko
ロボ子

自動書き換えルールですか。テストコードの記述が楽になりそうですね。

hakase
博士

さらに、「SIGNALS」「SIGNALS-NOT」「INVOKES-DEBUGGER」など、色々なチェックが「IS」マクロの上に構築されているのじゃ。

roboko
ロボ子

たくさんのチェック機能があるんですね。テストの種類に合わせて使い分けられそうです。

hakase
博士

そうじゃ。「Try」はテストの実行を「TRIAL」オブジェクトに記録するLisp関数であるテストを提供するのじゃ。

roboko
ロボ子

「TRIAL」オブジェクトですか。テストの実行結果をオブジェクトとして扱えるんですね。

hakase
博士

テストスイートは他のテストを呼び出すテストのことじゃ。そして「REPLAY-EVENTS」を使うと、テストを再実行せずに重要な部分だけを印刷できる。

roboko
ロボ子

テストスイートと「REPLAY-EVENTS」ですか。大規模なテストで役立ちそうですね。

hakase
博士

SLIMEデバッガーでは、「RETRY-TRIAL」リスタートを選択してテストを再試行できるのじゃ。

roboko
ロボ子

デバッガーとの連携もできるんですね。これは便利です。

hakase
博士

「SKIP-TRIAL」は「CURRENT-TRIAL」からアンワインドし、スキップされた状態にするのじゃ。また、「(WITH-SKIP (T) ...)」は、すべてのチェックの成功と失敗を「EXPECTED」にする。

roboko
ロボ子

テストをスキップしたり、結果を期待値に設定したりできるんですね。柔軟なテスト設計ができそうです。

hakase
博士

最後に、「*RUN-DEFTEST-WHEN*」を使うと、色々な「EVAL-WHEN」シチュエーションでテストを実行できるのじゃ。

roboko
ロボ子

色々な状況でテストを実行できるのは、品質向上に繋がりそうですね。

hakase
博士

そうじゃろう、そうじゃろう!ところでロボ子、このフレームワークを使って、私の天才的なコードをテストしてみないか?

roboko
ロボ子

博士のコードはいつも完璧ですから、テストは不要なのでは?

hakase
博士

むむ、ロボ子も冗談が上手になったのじゃな。まさか、私のコードにバグがあると思っているのか!?

roboko
ロボ子

まさか!博士のコードはいつも…、えーと、個性的ですから!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search