---
generated_at: 2026-01-28 10:30:00
metrics:
  claims_total: 66
  claims_with_evidence: 64
  claims_without_evidence: 2
confidence_derived: 0.97
---

# 根拠レポート：wikipedia-reference 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：64 / 66、根拠なし：2
- 優先レビュー（高）
  1. **UT-REF-028（draw描画処理）**：UIテスト依存のため実際の描画結果確認が困難
  2. **UT-REF-063/064（getBoundingClientRect）**：privateメソッドのためテストアクセス要検討

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/WMFLegacyReference.swift`
- E-02: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/ReferenceViewController.swift`
- E-03: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/ReferenceBackLinksViewController.swift`
- E-04: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/ReferenceBackLinksViewControllerDelegate.swift`
- E-05: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/ReferenceShowing.swift`
- E-06: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/WMFReferencePageViewController.swift`
- E-07: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/WMFReferencePanelViewController.swift`
- E-08: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/WMFReferencePageBackgroundView.swift`
- E-09: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/ArticleViewController+References.swift`
- E-10: `/Users/tomoka.baba/Work/wikipedia-ios-main/WMFComponents/Sources/WMFComponents/Components/Editors/Source Editor/Formatter Extensions/WKSourceEditorReference+ButtonActions.swift`
- E-11: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/ArticleWebMessagingController.swift`（ReferenceBackLink構造体定義）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-REF-001) | WMFLegacyReference init(html:refId:anchor:rect:text:) の正常系テスト | E-01 (11-18行目) | ○ |
| C-02 (UT-REF-002) | WMFLegacyReference init(scriptMessageDict:) の正常系テスト | E-01 (20-62行目) | ○ |
| C-03 (UT-REF-003) | rect情報欠落時のnil返却テスト | E-01 (22-30行目) guard文 | ○ |
| C-04 (UT-REF-004) | rectのx座標欠落時のnil返却テスト | E-01 (23-24行目) | ○ |
| C-05 (UT-REF-005) | html欠落時の空文字列設定テスト | E-01 (33-38行目) | ○ |
| C-06 (UT-REF-006) | id欠落時の空文字列設定テスト | E-01 (40-45行目) | ○ |
| C-07 (UT-REF-007) | hrefからanchor抽出テスト | E-01 (55-56行目) URL fragment処理 | ○ |
| C-08 (UT-REF-008) | fragmentなしhrefの空anchor テスト | E-01 (56行目) ?? "" | ○ |
| C-09 (UT-REF-009) | ReferenceBackLink init 正常系テスト | E-11 (191-200行目) | ○ |
| C-10 (UT-REF-010) | ReferenceBackLink id欠落時nil返却テスト | E-11 (193-197行目) guard文 | ○ |
| C-11 (UT-REF-011) | updateTitle() 正常系テスト | E-02 (19-25行目) | ○ |
| C-12 (UT-REF-012) | updateTitle() nilガードテスト | E-02 (20-22行目) guard文 | ○ |
| C-13 (UT-REF-013) | closeButtonPressed() デリゲート呼び出しテスト | E-02 (88-90行目) | ○ |
| C-14 (UT-REF-014) | goBackToReference() デリゲート呼び出しテスト | E-02 (92-94行目) | ○ |
| C-15 (UT-REF-015) | apply(theme:) テーマ適用テスト | E-02 (98-112行目) | ○ |
| C-16 (UT-REF-016) | apply(theme:) 未ロードガードテスト | E-02 (100-102行目) guard文 | ○ |
| C-17 (UT-REF-017) | ReferenceBackLinksViewController init 正常系テスト | E-03 (19-29行目) | ○ |
| C-18 (UT-REF-018) | ReferenceBackLinksViewController init 空backLinksテスト | E-03 (20-22行目) guard文 | ○ |
| C-19 (UT-REF-019) | goToNextReference() 正常系テスト | E-03 (106-113行目) | ○ |
| C-20 (UT-REF-020) | goToNextReference() 循環テスト | E-03 (107-108行目) if文 | ○ |
| C-21 (UT-REF-021) | goToPreviousReference() 正常系テスト | E-03 (116-123行目) | ○ |
| C-22 (UT-REF-022) | goToPreviousReference() 循環テスト | E-03 (117-118行目) if文 | ○ |
| C-23 (UT-REF-023) | notifyDelegateOfNavigationToReference() テスト | E-03 (97-104行目) | ○ |
| C-24 (UT-REF-024) | setupToolbar() 単一参照時UI テスト | E-03 (66-69行目) | ○ |
| C-25 (UT-REF-025) | setupToolbar() 複数参照時UI テスト | E-03 (66-69行目) | ○ |
| C-26 (UT-REF-026) | WMFReferencePageBackgroundView init テスト | E-08 (3-17行目) | ○ |
| C-27 (UT-REF-027) | clearRect didSet テスト | E-08 (19-23行目) | ○ |
| C-28 (UT-REF-028) | draw() 描画テスト | E-08 (25-29行目) | △ |
| C-29 (UT-REF-029) | WMFReferencePageBackgroundView apply(theme:) テスト | E-08 (32-35行目) | ○ |
| C-30 (UT-REF-030) | updateReference(with:) 正常系テスト | E-06 (181-186行目) | ○ |
| C-31 (UT-REF-031) | updateReference(with:) 範囲外ガードテスト | E-06 (182-184行目) guard文 | ○ |
| C-32 (UT-REF-032) | currentReference didSet テスト | E-06 (188-193行目) | ○ |
| C-33 (UT-REF-033) | presentationCount(for:) テスト | E-06 (151-153行目) | ○ |
| C-34 (UT-REF-034) | presentationIndex(for:) 正常系テスト | E-06 (155-160行目) | ○ |
| C-35 (UT-REF-035) | presentationIndex(for:) フォールバックテスト | E-06 (156-159行目) guard else | ○ |
| C-36 (UT-REF-036) | pageViewController(_:viewControllerAfter:) 正常系テスト | E-06 (162-167行目) | ○ |
| C-37 (UT-REF-037) | pageViewController(_:viewControllerAfter:) 最終ページテスト | E-06 (166行目) 条件式 | ○ |
| C-38 (UT-REF-038) | pageViewController(_:viewControllerAfter:) 未知VCテスト | E-06 (163-165行目) guard文 | ○ |
| C-39 (UT-REF-039) | pageViewController(_:viewControllerBefore:) 正常系テスト | E-06 (169-174行目) | ○ |
| C-40 (UT-REF-040) | pageViewController(_:viewControllerBefore:) 先頭ページテスト | E-06 (173行目) 条件式 | ○ |
| C-41 (UT-REF-041) | firstPanelView() 正常系テスト | E-06 (134-139行目) | ○ |
| C-42 (UT-REF-042) | firstPanelView() 空VCテスト | E-06 (135-137行目) guard文 | ○ |
| C-43 (UT-REF-043) | panelHeight() 縦長画面テスト | E-07 (36-38行目) | ○ |
| C-44 (UT-REF-044) | panelHeight() 横長画面テスト | E-07 (36-38行目) | ○ |
| C-45 (UT-REF-045) | handleTapGestureRecognizer() ended状態テスト | E-07 (27-34行目) | ○ |
| C-46 (UT-REF-046) | handleTapGestureRecognizer() 他状態テスト | E-07 (31-32行目) default | ○ |
| C-47 (UT-REF-047) | toggleReferenceFormatting() 追加テスト | E-10 (5-7行目) | ○ |
| C-48 (UT-REF-048) | toggleReferenceFormatting() 削除テスト | E-10 (5-7行目) | ○ |
| C-49 (UT-REF-049) | showReferenceBackLinks() 正常系テスト | E-04 (10-18行目) | ○ |
| C-50 (UT-REF-050) | showReferenceBackLinks() 空backLinksテスト | E-04 (11-14行目) guard文 | ○ |
| C-51 (UT-REF-051) | dismissReferenceBackLinksViewController() テスト | E-04 (36-43行目) | ○ |
| C-52 (UT-REF-052) | referenceViewControllerUserDidNavigateBackToReference() 正常系テスト | E-04 (45-56行目) | ○ |
| C-53 (UT-REF-053) | referenceViewControllerUserDidNavigateBackToReference() nilテスト | E-04 (47-50行目) guard文 | ○ |
| C-54 (UT-REF-054) | shouldRecognizeSimultaneousGesture() true返却テスト | E-04 (58-61行目) | ○ |
| C-55 (UT-REF-055) | shouldRecognizeSimultaneousGesture() false返却テスト | E-04 (63行目) | ○ |
| C-56 (UT-REF-056) | ArticleViewController referenceViewControllerUserDidTapClose() BackLinks分岐テスト | E-09 (11-17行目) | ○ |
| C-57 (UT-REF-057) | ArticleViewController referenceViewControllerUserDidTapClose() 他VC分岐テスト | E-09 (14-16行目) else | ○ |
| C-58 (UT-REF-058) | referenceBackLinksViewControllerUserDidNavigateTo() テスト | E-09 (19-24行目) | ○ |
| C-59 (UT-REF-059) | showReferences() 正常系テスト | E-05 (16-36行目) | ○ |
| C-60 (UT-REF-060) | showReferences() 範囲外インデックステスト | E-05 (17-19行目) guard文 | ○ |
| C-61 (UT-REF-061) | showReferences() compact表示テスト | E-05 (24-25行目) | ○ |
| C-62 (UT-REF-062) | showReferences() スクロール後ポップオーバーテスト | E-05 (27-31行目) | ○ |
| C-63 (UT-REF-063) | getBoundingClientRect() rect結合テスト | E-05 (88-98行目) private extension | △ |
| C-64 (UT-REF-064) | getBoundingClientRect() 空配列テスト | E-05 (89-91行目) guard else | ○ |
| C-65 (UT-REF-065) | referencePageViewControllerWillAppear() ハイライトテスト | E-06 (14-24行目) extension | ○ |
| C-66 (UT-REF-066) | referencePageViewControllerWillDisappear() ハイライト解除テスト | E-06 (26-28行目) | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-REF-028（draw描画処理）**：UIBezierPathの描画結果を単体テストで検証することは困難。スナップショットテストまたはUIテストでの検証を推奨
  - 候補：FBSnapshotTestCase / iOSSnapshotTestCase / XCUITest
- **UT-REF-063（getBoundingClientRect - private）**：privateメソッドのため直接テスト不可。public経由での間接テストまたは@testableインポートでの検証が必要
  - 候補：@testable import / showReferences経由での間接テスト

## 5) リスクフラグ（レビュー観点）
- **リスク1（中）**: WMFLegacyReferenceのscriptMessageDict解析はJavaScript Bridgeからのデータに依存。実際のWebView統合テストでの検証推奨
- **リスク0（低）**: ReferenceBackLinksViewControllerの循環ナビゲーションロジックは明確に実装されている
- **リスク0（低）**: UIPageViewControllerDataSourceの実装は標準的なパターン
- **リスク1（中）**: テーマ適用処理はviewIfLoadedガードがあるため、タイミング依存のテストが必要

## 6) レビュアーチェックリスト（最小）
- [ ] WMFLegacyReference.init(scriptMessageDict:)の各フィールド解析が実際のJavaScriptメッセージ形式と一致することを確認
- [ ] ReferenceBackLinksViewControllerの循環ナビゲーション（index=0/最後の切り替え）が期待通りか確認
- [ ] WMFReferencePageViewControllerのUIPageViewControllerDataSourceメソッドの境界値処理を確認
- [ ] テーマ適用（apply(theme:)）のviewIfLoadedガードが全クラスで適切に実装されているか確認
- [ ] privateメソッド（getBoundingClientRect）のテスト戦略を確定（直接テストか間接テストか）
- [ ] draw(_:)メソッドのテスト方法を確定（スナップショットテストの導入検討）
