mock-refactoring-progress.md•2.75 kB
# モックリファクタリング進捗
## 概要
モックの実装方法を改善するための計画に基づいて、以下の作業を完了しました:
1. 共有モックライブラリの基盤実装
   - `tests/mocks/` ディレクトリにカテゴリ別のサブディレクトリを作成
   - モックカテゴリごとに必要なモック生成関数を実装
   - 各モックの使用方法をJSDocコメントとして記載
2. インデックスファイルの整備
   - 各カテゴリ内の `index.ts` でサブモジュールをエクスポート
   - ルートレベルの `index.ts` でカテゴリをまとめてエクスポート
3. サンプルリファクタリングの実装
   - `global-controller-refactored.test.ts` を作成して、新しいモックライブラリの使用例を示す
## 実装したモック
### リポジトリ
- `IJsonDocumentRepository` → `json-document-repository.mock.ts`
- `IBranchMemoryBankRepository` → `branch-memory-bank-repository.mock.ts`
- `IGlobalMemoryBankRepository` → `global-memory-bank-repository.mock.ts`
### サービス
- `IIndexService` → `index-service.mock.ts`
### ユースケース
- `SearchDocumentsByTagsUseCase` → `search-documents-by-tags-usecase.mock.ts`
## 使用方法
モックライブラリは以下のように使用します:
```typescript
import { 
  // リポジトリモック
  createMockJsonDocumentRepository,
  createMockBranchMemoryBankRepository,
  createMockGlobalMemoryBankRepository,
  
  // サービスモック
  createMockIndexService,
  
  // ユースケースモック
  createMockSearchDocumentsByTagsUseCase
} from '../../mocks';
// 基本的な使い方 - デフォルト設定
const { instanceRepo: basicRepo } = createMockJsonDocumentRepository();
// カスタマイズした使い方
const { instanceRepo: customRepo } = createMockJsonDocumentRepository(mockRepo => {
  // ts-mockitoを使って振る舞いをカスタマイズ
  when(mockRepo.findById(deepEqual(new DocumentId('123')))).thenResolve({
    // カスタムドキュメント
  } as JsonDocument);
});
```
## 次のステップ
1. 既存テストの移行
   - `global-controller.test.ts` を実際にリファクタリング
   - 優先度の高い順に他のテストファイルを移行
2. 追加モックの実装
   - その他のユースケースモックを必要に応じて実装
   - より複雑なサービスモックの追加
3. テスト実行の確認
   - リファクタリング後もテストが正常に実行されることを確認
   - パフォーマンスの検証
4. ドキュメントの整備
   - 開発者向けガイドラインの作成
   - モックライブラリの使用例を充実