---
generated_at: 2026-01-28 14:30:00
metrics:
  claims_total: 81
  claims_with_evidence: 81
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：81 / 81、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全テストケースがソースコードに基づいて生成されています

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

- E-01: `lib/screens/wishList/bloc/wishlist_bloc.dart` - WishListBloc実装（イベント処理ロジック）
- E-02: `lib/screens/wishList/bloc/wishlist_event.dart` - イベントクラス定義
- E-03: `lib/screens/wishList/bloc/wishlist_state.dart` - 状態クラス定義
- E-04: `lib/screens/wishList/bloc/wishlist_repository.dart` - リポジトリ実装（API呼び出し）
- E-05: `lib/screens/wishList/data_model/wishlist_model.dart` - データモデル（WishListData, WishlistData）
- E-06: `lib/screens/wishList/view/wishlist_screen.dart` - 画面実装（WidgetとBlocの連携）
- E-07: `lib/screens/wishList/view/widget/wishlist_Item_list.dart` - リストウィジェット実装
- E-08: `lib/screens/wishList/view/widget/wishlist_loader.dart` - ローダーウィジェット実装
- E-09: `lib/screens/wishList/utils/index.dart` - エクスポートファイル
- E-10: `lib/widgets/wishlist_compare_widget.dart` - ウィッシュリストアイコンウィジェット
- E-11: `lib/data_model/add_to_wishlist_model/add_wishlist_model.dart` - 追加用データモデル

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | FetchWishListEvent成功時にFetchDataState.successが発行される | E-01 (L24-32) | ○ |
| C-02 | FetchWishListEvent失敗時(status=false)にFetchDataState.failが発行される | E-01 (L29-32) | ○ |
| C-03 | FetchWishListEvent例外発生時にFetchDataState.failが発行される | E-01 (L33-36) | ○ |
| C-04 | FetchDeleteAddItemEvent成功時にFetchDeleteAddItemState.successが発行される | E-01 (L37-44) | ○ |
| C-05 | FetchDeleteAddItemEvent例外発生時にFetchDeleteAddItemState.failが発行される | E-01 (L45-48) | ○ |
| C-06 | AddToCartWishlistEvent成功時にAddToCartWishlistState.successが発行される | E-01 (L49-57) | ○ |
| C-07 | AddToCartWishlistEvent失敗時(status=false)にAddToCartWishlistState.failが発行される | E-01 (L58-61) | ○ |
| C-08 | AddToCartWishlistEvent例外発生時にAddToCartWishlistState.failが発行される | E-01 (L62-65) | ○ |
| C-09 | OnClickWishListLoaderEvent発行時にOnClickWishListLoaderStateが発行される | E-01 (L66-68) | ○ |
| C-10 | RemoveAllWishlistEvent成功時にRemoveAllWishlistProductState.successが発行される | E-01 (L69-75) | ○ |
| C-11 | RemoveAllWishlistEvent失敗時(success=false)にRemoveAllWishlistProductState.failが発行される | E-01 (L76-78) | ○ |
| C-12 | RemoveAllWishlistEvent例外発生時にRemoveAllWishlistProductState.failが発行される | E-01 (L79-82) | ○ |
| C-13 | GetCartCountEvent成功時にFetchCartCountState.successが発行される | E-01 (L83-86) | ○ |
| C-14 | GetCartCountEvent例外発生時にFetchCartCountState.failが発行される | E-01 (L87-90) | ○ |
| C-15 | callWishListApiがWishListDataを返す | E-04 (L26-35) | ○ |
| C-16 | callWishListApi例外時にnullを返す | E-04 (L30-33) | ○ |
| C-17 | callWishListDeleteItemがAddToCartModelを返す | E-04 (L38-48) | ○ |
| C-18 | callWishListDeleteItem例外時にnullを返す | E-04 (L44-47) | ○ |
| C-19 | callAddToCartAPiがAddToCartModelを返す | E-04 (L52-63) | ○ |
| C-20 | callAddToCartAPi例外時にnullを返す | E-04 (L58-61) | ○ |
| C-21 | removeAllWishListProductsがBaseModelを返す | E-04 (L66-71) | ○ |
| C-22 | cartCountApiがCartModelを返す | E-04 (L74-83) | ○ |
| C-23 | cartCountApi例外時にnullを返す | E-04 (L78-81) | ○ |
| C-24 | WishListData.fromJsonがオブジェクトを生成する | E-05 (L24-25) | ○ |
| C-25 | WishListData.fromJsonが空配列を処理する | E-05 (L20) | ○ |
| C-26 | WishListData.fromJsonがnullを処理する | E-05 (L20) | ○ |
| C-27 | WishListData.toJsonがMapを返す | E-05 (L28) | ○ |
| C-28 | WishlistData.fromJsonがオブジェクトを生成する | E-05 (L43-44) | ○ |
| C-29 | WishlistData.fromJsonがnull productを処理する | E-05 (L35) | ○ |
| C-30 | WishlistData.toJsonがMapを返す | E-05 (L46) | ○ |
| C-31 | AddWishListModel.fromJsonがオブジェクトを生成する | E-11 (L20-22) | ○ |
| C-32 | AddWishListModel.fromJsonがnull dataを処理する | E-11 (L18) | ○ |
| C-33 | AddWishListModel.toJsonがMapを返す | E-11 (L25) | ○ |
| C-34 | FetchDataState.successがWishListStatus.successを設定する | E-03 (L28) | ○ |
| C-35 | FetchDataState.failがWishListStatus.failを設定する | E-03 (L30) | ○ |
| C-36 | AddToCartWishlistState.successがプロパティを設定する | E-03 (L39) | ○ |
| C-37 | AddToCartWishlistState.failがerrorを設定する | E-03 (L40) | ○ |
| C-38 | FetchDeleteAddItemState.successがプロパティを設定する | E-03 (L59) | ○ |
| C-39 | FetchDeleteAddItemState.failがerrorを設定する | E-03 (L60) | ○ |
| C-40 | RemoveAllWishlistProductState.successがプロパティを設定する | E-03 (L69) | ○ |
| C-41 | RemoveAllWishlistProductState.failがerrorを設定する | E-03 (L70) | ○ |
| C-42 | FetchCartCountState.successがcartDetailsを設定する | E-03 (L79) | ○ |
| C-43 | FetchCartCountState.failがerrorを設定する | E-03 (L81) | ○ |
| C-44 | FetchWishListEventインスタンスが生成される | E-02 (L15-16) | ○ |
| C-45 | FetchDeleteAddItemEventがproductIdを設定する | E-02 (L23-26) | ○ |
| C-46 | AddToCartWishlistEventがproductIdとquantityを設定する | E-02 (L35-40) | ○ |
| C-47 | OnClickWishListLoaderEventがisReqToShowLoaderを設定する | E-02 (L18-21) | ○ |
| C-48 | RemoveAllWishlistEventがmessageを設定する | E-02 (L28-30) | ○ |
| C-49 | RemoveAllWishlistEvent.propsがmessageを含む | E-02 (L31) | ○ |
| C-50 | RemoveAllWishlistEvent.propsがnull時に空文字を含む | E-02 (L31) | ○ |
| C-51 | GetCartCountEventインスタンスが生成される | E-02 (L43) | ○ |
| C-52 | initState時にFetchWishListEventが発行される | E-06 (L38) | ○ |
| C-53 | getSharePreferenceCartCountがカート数を取得する | E-06 (L42-44) | ○ |
| C-54 | dispose時にwishlistControllerがcloseされる | E-06 (L47-50) | ○ |
| C-55 | ShowLoaderWishListState時にWishListLoaderが表示される | E-06 (L172-174) | ○ |
| C-56 | FetchDataState.success時にWishlistItemListが表示される | E-06 (L186-191) | ○ |
| C-57 | FetchDataState.fail時にEmptyDataViewが表示される | E-06 (L193-195) | ○ |
| C-58 | データがある場合WishlistItemListが表示される | E-06 (L238-243) | ○ |
| C-59 | データが空の場合EmptyDataViewが表示される | E-06 (L244-251) | ○ |
| C-60 | データがnullの場合EmptyDataViewが表示される | E-06 (L238, L244) | ○ |
| C-61 | GridViewでアイテムが表示される | E-07 (L38-45) | ○ |
| C-62 | タップ時にproductScreenへ遷移する | E-07 (L50-58) | ○ |
| C-63 | 削除ボタンタップ時にFetchDeleteAddItemEventが発行される | E-07 (L85-89) | ○ |
| C-64 | simple/virtual商品でAddToCartWishlistEventが発行される | E-07 (L160-176) | ○ |
| C-65 | configurable商品で警告表示と画面遷移 | E-07 (L177-195) | ○ |
| C-66 | isSaleable=falseでopacity=0.4になる | E-07 (L149-152) | ○ |
| C-67 | 数量変更時にquantityMapが更新される | E-07 (L140-147) | ○ |
| C-68 | isLoading=trueでLoaderが表示される | E-07 (L209-213) | ○ |
| C-69 | SkeletonGridLoaderが表示される | E-08 (L19-28) | ○ |
| C-70 | isInWishlist=trueでfilledハートアイコン | E-10 (L33-41) | ○ |
| C-71 | isInWishlist=falseでborderハートアイコン | E-10 (L42-48) | ○ |
| C-72 | isInWishlist=nullでborderハートアイコン | E-10 (L33-34) | ○ |
| C-73 | compareIconが正しく生成される | E-10 (L52-77) | ○ |
| C-74 | Data.fromJsonがオブジェクトを生成する | E-11 (L35-37) | ○ |
| C-75 | Data.toJsonがMapを返す | E-11 (L39) | ○ |
| C-76 | WishlistProduct.fromJsonがオブジェクトを生成する | E-11 (L68-70) | ○ |
| C-77 | WishlistProduct.toJsonがMapを返す | E-11 (L72) | ○ |
| C-78 | PriceHtml.fromJsonがオブジェクトを生成する | E-11 (L80-82) | ○ |
| C-79 | Images.fromJsonがオブジェクトを生成する | E-11 (L101-103) | ○ |
| C-80 | BaseImage.fromJsonがオブジェクトを生成する | E-11 (L117-119) | ○ |
| C-81 | Reviews.fromJsonがオブジェクトを生成する | E-11 (L135-137) | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし
  - 全てのテストケースはソースコードに基づいて生成されています
  - APIクライアント（ApiClient）の詳細実装は外部依存のため、モック化を前提としています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードから直接導出されています
- 注意点：
  - 外部APIとの通信部分はモック化が必要
  - SharedPreference（appStoragePref）の動作はモック化推奨
  - Navigator、Contextのモック化が必要なUI関連テスト

## 6) レビュアーチェックリスト（最小）
- [ ] BlocテストでMocktailまたはMockitoを使用してRepositoryをモック化する設計になっているか
- [ ] 非同期処理（async/await）のテストでblocTestまたはEmitter検証が正しく行われているか
- [ ] JSONシリアライズ/デシリアライズテストで実際のAPIレスポンス形式と一致しているか
- [ ] Widget Testでflutter_testパッケージを使用し、適切なWidgetのfind/expectが行われているか
- [ ] 境界値テスト（null、空配列）が網羅されているか
- [ ] エラーハンドリングテストで例外発生時の振る舞いが検証されているか
