---
generated_at: 2026-01-28 14:25:00
metrics:
  claims_total: 45
  claims_with_evidence: 43
  claims_without_evidence: 2
confidence_derived: 0.96
---

# 根拠レポート：data_model_add_to_wishlist_model 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：43 / 45、根拠なし：2
- 優先レビュー（高）
  1. **UT-WL-039**：不正な型のdata処理 - 実際の挙動は実行時確認が必要
  2. **UT-WL-040**：不正な型のid処理 - 実際の挙動は実行時確認が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `lib/data_model/add_to_wishlist_model/add_wishlist_model.dart`（メインソースコード）
- E-02: `lib/data_model/graphql_base_model.dart`（BaseModelクラス定義）
- E-03: `@JsonSerializable()` アノテーション（json_serializableパッケージ）
- E-04: `@JsonKey(name: "formatedPrice")` アノテーション（JSONキー名マッピング）
- E-05: `part 'add_wishlist_model.g.dart'`（生成コードファイル参照）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | AddWishListModelはBaseModelを継承している | E-01 L17: `class AddWishListModel extends BaseModel` | ○ |
| C-02 | AddWishListModelはData?型のdataフィールドを持つ | E-01 L18: `Data? data;` | ○ |
| C-03 | AddWishListModel.fromJsonはファクトリコンストラクタである | E-01 L20-22: `factory AddWishListModel.fromJson` | ○ |
| C-04 | AddWishListModel.toJsonはMap<String, dynamic>を返す | E-01 L24-25: `Map<String, dynamic> toJson()` | ○ |
| C-05 | DataクラスはInt?型のidフィールドを持つ | E-01 L30: `int? id;` | ○ |
| C-06 | DataクラスはWishlistProduct?型のproductフィールドを持つ | E-01 L31: `WishlistProduct? product;` | ○ |
| C-07 | Data.fromJsonはファクトリコンストラクタである | E-01 L35-37: `factory Data.fromJson` | ○ |
| C-08 | Data.toJsonはMap<String, dynamic>を返す | E-01 L39: `Map<String, dynamic> toJson()` | ○ |
| C-09 | WishlistProductクラスはString?型のidフィールドを持つ | E-01 L44: `String? id;` | ○ |
| C-10 | WishlistProductにはJsonKeyアノテーションがある | E-01 L51: `@JsonKey(name: "formatedPrice")` | ○ |
| C-11 | WishlistProduct.fromJsonはファクトリコンストラクタである | E-01 L68-70: `factory WishlistProduct.fromJson` | ○ |
| C-12 | WishlistProduct.toJsonはMap<String, dynamic>を返す | E-01 L72: `Map<String, dynamic> toJson()` | ○ |
| C-13 | PriceHtmlクラスはString?型のregularフィールドを持つ | E-01 L77: `String? regular;` | ○ |
| C-14 | PriceHtml.fromJsonはファクトリコンストラクタである | E-01 L80-82: `factory PriceHtml.fromJson` | ○ |
| C-15 | PriceHtml.toJsonはMap<String, dynamic>を返す | E-01 L84: `Map<String, dynamic> toJson()` | ○ |
| C-16 | ImagesクラスはString?型のidフィールドを持つ | E-01 L89: `String? id;` | ○ |
| C-17 | Images.fromJsonはファクトリコンストラクタである | E-01 L101-103: `factory Images.fromJson` | ○ |
| C-18 | Images.toJsonはMap<String, dynamic>を返す | E-01 L105: `Map<String, dynamic> toJson()` | ○ |
| C-19 | BaseImageクラスはプロパティを持たない | E-01 L109-122: コメントアウトされたフィールドのみ | ○ |
| C-20 | BaseImage.fromJsonはファクトリコンストラクタである | E-01 L117-119: `factory BaseImage.fromJson` | ○ |
| C-21 | BaseImage.toJsonはMap<String, dynamic>を返す | E-01 L121: `Map<String, dynamic> toJson()` | ○ |
| C-22 | Reviewsクラスはプロパティを持たない | E-01 L124-140: コメントアウトされたフィールドのみ | ○ |
| C-23 | Reviews.fromJsonはファクトリコンストラクタである | E-01 L135-137: `factory Reviews.fromJson` | ○ |
| C-24 | Reviews.toJsonはMap<String, dynamic>を返す | E-01 L139: `Map<String, dynamic> toJson()` | ○ |
| C-25 | BaseModelはsuccess、status、message、cartCount、graphqlErrors、errorフィールドを持つ | E-02 L19-26 | ○ |
| C-26 | BaseModel.successはbool?型である | E-02 L19: `bool? success;` | ○ |
| C-27 | BaseModel.statusはbool?型である | E-02 L21: `bool? status;` | ○ |
| C-28 | BaseModel.messageはString?型である | E-02 L23: `String? message;` | ○ |
| C-29 | BaseModel.cartCountはint?型である | E-02 L24: `int? cartCount;` | ○ |
| C-30 | BaseModel.graphqlErrorsはString?型である | E-02 L20: `String?graphqlErrors;` | ○ |
| C-31 | BaseModel.errorはdynamic型である | E-02 L25: `dynamic error;` | ○ |
| C-32 | 全クラスに@JsonSerializable()アノテーションがある | E-01, E-03 | ○ |
| C-33 | 生成コードファイルがpart宣言されている | E-01 L14: `part 'add_wishlist_model.g.dart';` | ○ |
| C-34 | json_annotationパッケージがインポートされている | E-01 L12: `import 'package:json_annotation/json_annotation.dart';` | ○ |
| C-35 | graphql_base_modelがインポートされている | E-01 L11: `import 'package:bagisto_app_demo/data_model/graphql_base_model.dart';` | ○ |
| C-36 | AddWishListModelのコンストラクタはdataをオプショナルで受け取る | E-01 L19: `AddWishListModel({this.data});` | ○ |
| C-37 | Dataのコンストラクタはidとproductをオプショナルで受け取る | E-01 L33: `Data({this.id, this.product});` | ○ |
| C-38 | WishlistProductのコンストラクタはidをオプショナルで受け取る | E-01 L64-66: `WishlistProduct({this.id,});` | ○ |
| C-39 | PriceHtmlのコンストラクタはregularをオプショナルで受け取る | E-01 L78: `PriceHtml({this.regular});` | ○ |
| C-40 | Imagesのコンストラクタはidをオプショナルで受け取る | E-01 L97-99: `Images({this.id,});` | ○ |
| C-41 | BaseImageのコンストラクタは引数なし | E-01 L115: `BaseImage();` | ○ |
| C-42 | Reviewsのコンストラクタは引数なし | E-01 L133: `Reviews();` | ○ |
| C-43 | 不正な型のdataが渡された場合の挙動 | **根拠なし（実行時確認が必要）** | △ |
| C-44 | 不正な型のidが渡された場合の挙動 | **根拠なし（実行時確認が必要）** | △ |
| C-45 | シリアライズ後のデシリアライズで同値になること | E-01, E-03（json_serializableの仕様） | ○ |

## 4) 不足情報（Unknown / Missing）
- **異常系テストケースの実際の挙動**：不正な型が渡された場合にjson_serializableがどのように処理するか（例外をスローするか、nullに変換するか等）は、実行時の確認が必要
  - 候補：json_serializableパッケージのドキュメント / 実際のテスト実行結果 / 生成された.g.dartファイルの確認
- **生成コードファイル（.g.dart）**：`add_wishlist_model.g.dart`ファイルが見つからなかったため、生成されたシリアライズ/デシリアライズコードの詳細は未確認
  - 候補：`flutter pub run build_runner build`の実行 / .g.dartファイルの手動確認

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 正常系テストケース（UT-WL-001〜UT-WL-008, UT-WL-009〜UT-WL-016等）
  - ソースコードから直接確認可能
- **1: 中リスク** - 境界値テストケース（UT-WL-012, UT-WL-013, UT-WL-020, UT-WL-021）
  - 型の範囲や制限はDart/json_serializableの仕様に依存
- **2: 高リスク** - 異常系テストケース（UT-WL-039, UT-WL-040）
  - 実行時の挙動確認が必要
  - json_serializableの例外処理動作は設定に依存する可能性あり

## 6) レビュアーチェックリスト（最小）
- [ ] AddWishListModelがBaseModelの全フィールドを正しく継承していることを確認
- [ ] 各クラスのfromJson/toJsonメソッドがnull安全に実装されているか確認
- [ ] @JsonKey(name: "formatedPrice")のスペルミス（formatted→formated）がAPI仕様と一致しているか確認
- [ ] コメントアウトされたフィールド（WishlistProduct内のsku, type, name等）が将来的に使用される予定がないか確認
- [ ] 生成コードファイル(.g.dart)が正しく生成されているか、build_runnerを実行して確認
- [ ] 異常系テストケース（UT-WL-039, UT-WL-040）の期待結果を実際のテスト実行で検証
