ApexBlueprint ガイド
ApexBlueprint は、 結合テストで「親子のレコード群を依存順に組み立てて DML 挿入する」 ためのデータ生成 OSS です。 Setup (事前準備・インストール)、 プロダクションコードでの使い方を解説する 使い方ガイド、 各クラスの API を網羅する API リファレンス、 設計の動機を掘り下げる Deep Dives の 4 段構えで構成しています。
Setup
ApexBlueprint を最初に組織へインストールするまでの導線を、 環境セットアップから順に解説します。
使い方ガイド
SBlueprint と SOrchestrator を結合テストで使う典型シナリオを、 単一レコード → 実行エンジン → 親子・量産・参照の応用、 という流れで解説します。
SBlueprint で単一レコードを宣言する
ApexBlueprint で結合テストデータを組み立てるためのコア API、 SBlueprint の基本 5 メソッド (of / set / template / alias / use) を「最終状態を宣言する」 という考え方とともに解説します。
SOrchestrator で依存解決と実 DML 挿入
SBlueprint で組み立てた設計図を実レコードに変換する SOrchestrator の 4 メソッド (start / add / create / getByAlias) と、 トポロジカルソート / 循環依存 / alias 重複などのハマりどころを解説します。
親子・量産・参照のパターン
単一レコードの宣言から一歩進めた応用パターン。 withChildren のネスト、 times + {#} での量産、 use の offset 指定、 {P0} / {P1} での真の親解決、 parentIdField による曖昧解消までを実例で解説します。
API リファレンス
クラスごとに全 API をシグネチャ付きで網羅した詳細リファレンスです。
SBlueprint
SBlueprint メソッドチェーンの全 API を網羅。 ファクトリ / 値設定 / alias / use / times / withChildren / parentIdField と、 {#} / {A} / {a} / {P0}〜{Pn} のプレースホルダ仕様を一通り整理します。
SOrchestrator
SOrchestrator の全 API を網羅。 ファクトリ (MockDmlOperator 注入) / add / create / getByAlias と、 循環依存 / alias 重複 / 不正参照 / 複数 lookup の曖昧の各例外を整理します。
Deep Dives
ApexBlueprint がなぜこの形に落ち着いたかを掘り下げる読みものです。
Declarative Data Specification: なぜ blueprint 形式か
TestDataFactory パターンの構造的な疲弊 (ID バケツリレー / メソッド増殖 / 最終状態が読めない / 冗長レコード) を出発点に、 「データの最終状態を宣言する」 形式への転換と、 Salesforce で特にこれが効く理由を掘り下げる Deep Dive。
依存解決の仕組み: トポロジカルソート + alias 解決
SOrchestrator.create() の内部処理を 6 つのフェーズに分解。 循環依存検出 / 自動 alias / {P0} {P1} の階層スタック解決が、 なぜ 1 つのパイプラインに統合できているかを内部構造から解説する Deep Dive。
次に読む
- テスト戦略: Handler 結合テストで
SBlueprint/SOrchestratorを使う位置づけ - Apex Stem 導入ガイド: 動くコード付きの 4 ステップ
- ApexBlueprint の GitHub リポジトリ: ソースコードと最新情報