◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り44日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り44日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-04-08上級

Claude Code で iOS テスト基盤を組み直す — XCTest・Swift Testing・XCUITest の役割分担

Claude Code で iOS アプリのテスト基盤を組み直した手順です。XCTest・Swift Testing・XCUITest の役割分担、CI でテスト失敗が緑に化ける pipefail の罠、失敗だけを Claude に返す Hooks の組み方を書き残します。

claude-code132ios14xctestswift-testingxcuitestxcodeci-cd8テスト自動化4swiftui

✦ プレミアム記事

壁紙アプリの更新作業で、一覧の並び替えを直したあと、関係ないはずのお気に入り画面を手で触って確かめる——そんな確認を毎回くり返していた時期がありました。確認の範囲は更新のたびに広がり、どこかで見落とすのは時間の問題でした。

個人で保守しているアプリでは、確かめる人も自分ひとりです。テストは品質のためというより、自分の記憶を当てにしないための仕組みなのだと、そこで腹に落ちました。

Claude Code を挟むと、テスト設計・テストコード生成・CI 環境構築のいずれもが目に見えて軽くなります。以下では、私が落ち着いた構成 — XCTest・Swift Testing・XCUITest がそれぞれ得意な領域だけを担当する形 — を、実際に使ったプロンプトとともにお伝えします。

対象読者はiOSアプリ開発の経験があり、「そろそろテストをちゃんとやりたい」と思っているエンジニアです。Swiftの基本文法はご存知の前提で進めます。

iOS テストの全体像:3層テスト戦略

まず、テスト全体の戦略を整理しておきましょう。iOSアプリに適したテスト構成は「3層ピラミッド」モデルです。

最下層のユニットテストは、個々のクラス・関数の動作を独立して検証します。実行速度が速く、フィードバックが即座に得られるため、最も数が多くなります。Swift Testing フレームワークが活躍する領域です。

中間層の統合テストは、複数コンポーネントの連携を検証します。Repository と ViewModel の間、ViewModel と Service の間など、実際のデータフローをテストします。モックを使いすぎず、実際の依存関係を一部使用するのが特徴です。

上位層の**UIテスト(End-to-End)**は、ユーザーの実際の操作フローをシミュレートします。実行時間が長く、メンテナンスコストが高いため、最も重要な「Critical Path」のみに絞ることが鉄則です。

Claude Codeはこの3層すべてにおいて、コード生成・分析・修正のサポートを提供できます。

Claude Code × iOS テスト:なぜ相性が良いのか

Claude Codeは単なるコード補完ツールではなく、プロジェクト全体のコンテキストを理解した上でテストを生成できます。通常のAI補完との違いは次の点にあります。

CLAUDE.md によるプロジェクト文脈の共有という仕組みが特に強力です。アーキテクチャ設計・命名規則・依存関係をClaude Codeに事前理解させることで、プロジェクト固有の慣習に沿ったテストが生成されます。一度適切な CLAUDE.md を書いてしまえば、毎回「モックはプロトコルベースで」「命名は〜Tests.swift」と伝える必要がなくなります。

既存コードの分析においては、実装コードを読み込み、テストすべき境界値・エッジケースを自動で洗い出します。例えば「この関数のすべてのパスをテストして」と依頼すると、正常系・異常系・境界値を網羅したテストケースを提案してくれます。

テスト失敗の自己修正については、CIパイプラインと連携させることで、テスト失敗時に自動でバグを特定・修正するループを構築できます。Hooks 機能を使ったこの自動修正ループについては後半で詳しく説明します。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦XCTest・Swift Testing・XCUITest のどれに何を任せるかを、ユニット・統合・UI の3層で判断できるようになる
✦xcodebuild を xcbeautify に通したとき CI がテスト失敗を見逃す原因(pipefail)を理解し、GitHub Actions の設定で塞げるようになる
✦PostToolUse フックで xcodebuild test の失敗だけを Claude に返し、3回で止まる修正ループを自分のプロジェクトに組み込めるようになる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⟐ Claude Code2026-08-28
名前に混ざった見えない文字を、プラグインを入れる前に洗い出す小さなスクリプト
プラグインやスキルの名前に不可視文字や制御文字が混ざっていても、ターミナルの一覧では見分けがつきません。実際に6つの紛らわしい名前を並べて ls の出力を比べ、導入前に走らせる点検スクリプトと、その点検が拾えない範囲までを整理しました。
⟐ Claude Code2026-08-26
キャッシュのTTLを1時間に延ばすかは、離席の長さではなく戻る場所で決めています
Claude Code v2.1.242 で promptCacheTtl と subagentPromptCacheTtl が追加されました。1時間キャッシュが効く条件は離席時間ではなく、同じ作業ディレクトリと同じ git 状態へ戻るかどうかです。判断の順番と、効いているかを確かめる手順を書き残します。
⟐ Claude Code2026-06-12
Android の戻るボタン広告ゲートを入れ子から並列独立構造へ — Claude Code と進めた終了フロー再設計の記録
戻るボタンの広告が「出ない」と「出すぎる」を同時に起こした原因は、入れ子分岐に埋め込まれた暗黙の優先度でした。壁紙アプリ v2.1.0 で広告ゲートを並列独立構造へ作り直した過程を、Kotlin実装・Claude Codeへの依頼内容・テストまで含めて記録します。