ITSUKI.
技術826 文字3 分

Day 17|テスト — 変更した一行を、振る舞いで確かめる

#Codex#ソースコードリーディング#図解

この章しょうの答こたえ

変更へんこうに近ちかいテストから始はじめ、失敗しっぱいの意味いみを確認かくにんして検証けんしょう範囲はんいを広ひろげる。

コンパイルが通とおっただけでは、期待きたいした動うごきになったかは分わかりません。一方いっぽう、すべてのテストを何度なんども回まわせばよいわけでもありません。変更へんこうした責務せきむに合あった観察かんさつ点てんを選えらぶのが出発点しゅっぱつてんです。

01|図でつかむ

図17|テスト

失敗しっぱいは調査ちょうさの入口いりぐち。テストの数かずより、何なにを確たしかめたかを説明せつめいする。

02|3つのポイントで理解する

1. 単体・統合・スナップショットを使い分ける

関数かんすうの入出力にゅうしゅつりょく、部品間ぶひんかんの連携れんけい、描画びょうが結果けっかでは、適てきしたテストの形かたちが違ちがいます。変更へんこうが影響えいきょうする境界きょうかいを決きめてから、近ちかくの既存きぞんテストを読よみます。

2. 失敗の理由を先に読む

実装じっそうの不具合ふぐあいなのか、期待値きたいちを更新こうしんすべき仕様変更しようへんこうなのかを区別くべつします。スナップショットの差分さぶんは、承認しょうにんすれば正ただしくなるわけではありません。表示内容ひょうじないようや順序じゅんじょを確認かくにんします。

3. 検証を一段ずつ広げる

関連かんれんするテストが通とおったら、必要ひつように応おうじて crate 単位たんいの確認かくにんへ進すすみます。使用しようしたコマンド、対象たいしょう範囲はんい、失敗しっぱいやスキップを記録きろくし、実際じっさいに確たしかめた範囲はんいを明確めいかくにします。

03|ソースで確かめる

以下いかの検索けんさくは Codex リポジトリのルートで実行じっこうします。最初さいしょに対象たいしょう commit を記録きろくし、検索結果けんさくけっかから定義ていぎと呼び出よびだし元もとを一ひとつずつ開ひらいてください。

just test -p codex-tui
# スナップショットの差分を確認
cargo insta pending-snapshots -p codex-tui

テスト用ようツールはリポジトリの手順てじゅんに従したがって用意よういします。ここに載のせたコマンドは学習用がくしゅうようで、この編集作業へんしゅうさぎょうで Codex 本体ほんたいのテストを実行じっこうしたという記録きろくではありません。

読よむ入口いりぐち: justfile 。リンク先さきは照合しょうごうに使つかった固定こてい commit のファイルです。手元てもとの版はんと異ことなる場合ばあいは、上うえの検索語けんさくごから探さがし直なおします。

小さく試す

変更へんこう候補こうほに近ちかいテストを一ひとつ読よみ、Arrange・Act・Assert に相当そうとうする箇所かしょへ印しるしを付つけます。

04|30秒で復習

  • 期待きたいする振ふる舞まいからテストを選えらぶ。
  • スナップショットは差分さぶんを読よんで判断はんだんする。
  • 成功せいこうだけでなく対象たいしょうと実行じっこう件数けんすうを記録きろくする。

全ぜん30章しょうの目次もくじへ