# TDD 测试发现 Ledger(自动扫描 · 只读) > 生成依据:`tdd-orchestrator/scripts/discover_tests.py` 扫描 `cfc-backend/src/main/java` 与 `cfc-backend/src/test/java`。 > 本 ledger 仅**格式化与跟踪已有测试**,不创建任何测试用例。覆盖判定兼容两种风格:HTTP 端点 + 直接方法调用。 ## 一、汇总 | 指标 | 数值 | | --- | --- | | 控制器总数 | 357 | | handler 方法总数 | 1933 | | handler 方法已覆盖 | 199 (10.3%) | | 单元-全覆盖(handler 方法) | 16 | | 单元-部分覆盖(handler 方法) | 69 | | 单元-未覆盖(handler 方法) | 271 | | 单元-无handler 方法 | 1 | | 测试文件数 | 182 | | @Test 方法总数 | 1379 | | 含跳过/假设项(test 级 partial) | 4 | ## 二、未覆盖控制器(发现「缺口」· 非发明) > 以下控制器在当前测试源中**没有任何handler 方法被命中**。这是真实扫描得到的覆盖缺口。 共 271 个: - `AdminController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminController.java`,65 方法) - `DanAssessmentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/DanAssessmentController.java`,29 方法) - `AdminArticleController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminArticleController.java`,22 方法) - `TaskController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/task/TaskController.java`,18 方法) - `FamilyUserController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/family/FamilyUserController.java`,17 方法) - `AdminInventoryController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminInventoryController.java`,16 方法) - `FamilyInviteController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/family/FamilyInviteController.java`,15 方法) - `OrchestrationController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/OrchestrationController.java`,15 方法) - `KeyPersonController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/KeyPersonController.java`,14 方法) - `AdminCouponController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminCouponController.java`,12 方法) - `SupplySystemController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/SupplySystemController.java`,12 方法) - `BadgeController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/BadgeController.java`,11 方法) - `SupplyHierarchyController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/SupplyHierarchyController.java`,11 方法) - `TrainingPlanController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/guide/TrainingPlanController.java`,11 方法) - `ActivityTeamController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/ActivityTeamController.java`,10 方法) - `AdminGuideController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminGuideController.java`,10 方法) - `CouponController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/CouponController.java`,10 方法) - `GuideController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideController.java`,10 方法) - `ProcurementTaskController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/product/ProcurementTaskController.java`,10 方法) - `TaskTemplatePackageController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/TaskTemplatePackageController.java`,10 方法) - `TeacherController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/guide/TeacherController.java`,10 方法) - `UserController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/UserController.java`,10 方法) - `AdminButlerController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminButlerController.java`,9 方法) - `FamilyMembersController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/family/FamilyMembersController.java`,9 方法) - `FileRecordController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/FileRecordController.java`,9 方法) - `GutHealthProjectController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/GutHealthProjectController.java`,9 方法) - `KnowledgeBaseController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/KnowledgeBaseController.java`,9 方法) - `MarketController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/MarketController.java`,9 方法) - `PearlController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/PearlController.java`,9 方法) - `PpointConfigAdminController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/PpointConfigAdminController.java`,9 方法) - `AdminActivityController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminActivityController.java`,8 方法) - `AdminAuthController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminAuthController.java`,8 方法) - `ArticleCommentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/content/ArticleCommentController.java`,8 方法) - `ContactController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/ContactController.java`,8 方法) - `DanReportController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/DanReportController.java`,8 方法) - `FamilyChallengeController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/FamilyChallengeController.java`,8 方法) - `PurchaseController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/PurchaseController.java`,8 方法) - `SupplyManageController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/SupplyManageController.java`,8 方法) - `SysMenuController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/SysMenuController.java`,8 方法) - `TaskReminderController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/task/TaskReminderController.java`,8 方法) - `AdminDistributionController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminDistributionController.java`,7 方法) - `AdminOrgController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminOrgController.java`,7 方法) - `AdminProductOrderController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminProductOrderController.java`,7 方法) - `AdminUnlockGateController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminUnlockGateController.java`,7 方法) - `AssessmentAdminController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AssessmentAdminController.java`,7 方法) - `BeijingNutritionController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/nutrition/BeijingNutritionController.java`,7 方法) - `DanAssessmentExecutionController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanAssessmentExecutionController.java`,7 方法) - `GrowthPlanController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/growth/GrowthPlanController.java`,7 方法) - `GuideActivityController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideActivityController.java`,7 方法) - `NutritionProductController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/nutrition/NutritionProductController.java`,7 方法) - `PlannerCertificationController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/planner/PlannerCertificationController.java`,7 方法) - `ShareController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/ShareController.java`,7 方法) - `StreetController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/StreetController.java`,7 方法) - `TianpanController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/tianpan/TianpanController.java`,7 方法) - `AdminCommissionController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminCommissionController.java`,6 方法) - `AdminEnergyRuleController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminEnergyRuleController.java`,6 方法) - `AdminFoodController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminFoodController.java`,6 方法) - `AdminHomeBannerController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminHomeBannerController.java`,6 方法) - `AdminNoticeController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminNoticeController.java`,6 方法) - `AdminPeriodicServiceController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminPeriodicServiceController.java`,6 方法) - …(其余 211 个见完整扫描) ## 三、部分覆盖控制器(已做一部分测试) > 这些控制器**已有测试但只覆盖了部分handler 方法**——即用户要求的「已经做了一部分测试的情况,要能够找到」。 共 69 个: - `HealthReportController`:覆盖 1/59,未覆盖方法:createReport、getLatestReport、listFamilyReports、listAllReports、getReportIndicatorsWithPrevious、listIndicators、getMemberIndicators、getGutFlora、rebuildIndicatorCurrent、getMemberIndicatorCurrent - `HealthKnowledgeBaseController`:覆盖 1/28,未覆盖方法:batchQuery、list、add、update、delete、importKnowledgeBase、queryBacteria、batchQueryBacteria、queryIndicator、queryFood - `ProductOrderController`:覆盖 7/19,未覆盖方法:myOrderCounts、vendorConfirm、reviewUpdate、ship、applyRefund、handlePaymentSuccess、notify、activityAudit、activitySignIn、activityComplete - `AuthController`:覆盖 14/18,未覆盖方法:setSwitchPassword、verifyToken、ssoTicket、ssoLogin - `GuideManagementController`:覆盖 3/17,未覆盖方法:resubmitApplication、getUserApplications、getApplicationRecords、generateInviteCode、getInviteCodes、validateInviteCode、getChildGuides、getAllChildGuides、getParentGuide、getGuidePackageTemplates - `MembershipController`:覆盖 4/17,未覆盖方法:getAllLevels、getMyMembership、getUpgradeRecords、upgradeOrder、activateTrial、createOrder、continueOrder、getPricingPlans、getMembershipCompare、paymentNotify - `ArticleController`:覆盖 4/16,未覆盖方法:relatedProducts、related、relatedByProduct、getArticleAudio、reportReadingTime、readingStats、dailyTip、aiQuestions、submitAnswers、publish - `CircleController`:覆盖 1/16,未覆盖方法:myCircles、discover、join、leave、create、update、pendingMembers、approve、feed、multiFeed - `ReportParserAdminController`:覆盖 1/15,未覆盖方法:listTypes、toggleType、deleteType、listFingerprints、saveFingerprint、deleteFingerprint、listImports、uploadImport、approveImport、rejectImport - `ActivityController`:覆盖 6/13,未覆盖方法:submitReview、register、cancelRegistration、myRegistrations、registrationRoster、checkin、checkinReview - `CommissionController`:覆盖 1/13,未覆盖方法:list、team、stats、balance、teamList、funnel、teamConsumption、myReferrer、teamTree、teamGrowthCurve - `GrowthRecordController`:覆盖 4/13,未覆盖方法:getRecordList、getChildRecords、getRecordDetail、deleteRecord、syncExternalResult、createFromUpload、createSupplement、checkDuplicate、getSupplements - `HealthPlanController`:覆盖 1/13,未覆盖方法:generate、regenerateSection、save、confirm、list、detail、planTasks、availableTeachers、listPendingReview、updatePlan - `StatsController`:覆盖 4/12,未覆盖方法:getDashboardSummary、getRevenueStats、getMembershipStats、childOverview、familySummary、pointsRanking、getTrafficAnalytics、recordProductView - `WishController`:覆盖 11/12,未覆盖方法:priceAlias - `PaymentController`:覆盖 5/11,未覆盖方法:createWechatNativePay、getPaymentStatus、getOAuth2Url、oauth2Callback、handleV3Notify、generateQrCode - `AdminVirtualTeamController`:覆盖 1/10,未覆盖方法:list、create、update、toggle、addMember、removeMember、updateMember、userTeams、tree - `GuideFamilyTaskController`:覆盖 8/10,未覆盖方法:unbindFamily、getDashboardStats - `SubscriptionController`:覆盖 1/10,未覆盖方法:getPlans、createOrder、subscribe、cancel、setAutoRenew、getMyBenefits、checkBenefit、getTier、updateTier - `AIChatController`:覆盖 3/9,未覆盖方法:reportAnalyze、deleteConversation、sendNutritionMessage、sendHealthCoachMessage、sendHealthButlerMessage、transcribe - `AdminProductController`:覆盖 1/9,未覆盖方法:list、review、shelve、detail、create、update、copy、delete - `EnergyController`:覆盖 5/9,未覆盖方法:configureSourceRatios、getScoreHistory、getFamilyScoreHistory、getWealthDetail - `FiveDimensionSelfCheckController`:覆盖 3/9,未覆盖方法:submit、getHistory、ignoreSelfCheck、generatePlan、getTrendAnalysis、aiGenerateQuestions - `ProductController`:覆盖 6/9,未覆盖方法:updateImages、specMap、relatedProducts - `SupplyTeamController`:覆盖 1/9,未覆盖方法:listCustomers、bindCustomer、getRelation、serviceAssign、serviceTasks、customerServices、updateServiceTask、serviceCandidates - `CognitiveController`:覆盖 1/8,未覆盖方法:getChildCognitiveScores、getFamilyCognitiveScores、updateCognitiveScore、getRecommendations、createTaskFromRecommendation、getNorms、submitSelfTest - `GuideTeamController`:覆盖 6/8,未覆盖方法:checkStatus、leaveTeam - `DoaController`:覆盖 1/7,未覆盖方法:createStage、stageDetail、cancelStage、submitPlan、submitReview、weekList - `EmotionCheckinController`:覆盖 2/7,未覆盖方法:create、list、stats、weeklyReport、recognizeEmotion - `AdminEnergyConfigController`:覆盖 1/6,未覆盖方法:sourceList、sourceSave、sourceDelete、dailyLimits、dailyLimitSave - `AdminGuidePopupController`:覆盖 1/6,未覆盖方法:list、create、update、delete、stats - `AdminPlannerExamController`:覆盖 1/6,未覆盖方法:papers、createPaper、updatePaper、deletePaper、saveQuestions - `AdminSpecialPriceController`:覆盖 4/6,未覆盖方法:list、update - `ButlerController`:覆盖 1/6,未覆盖方法:apply、getProfile、updateProfile、getServiceRecords、getCommissions - `FoodRecommendController`:覆盖 2/6,未覆盖方法:getIndex、getHistory、getByFamily、getCautionFoods - `IndicatorController`:覆盖 2/6,未覆盖方法:quickLookup、sourceTypes、periods、correlationList - `ActivityOrderController`:覆盖 1/5,未覆盖方法:create、pay、handlePaymentSuccess、notify - `AdminCommissionConfigController`:覆盖 1/5,未覆盖方法:getConfig、updateConfig、settle、refund - `AdminOrgStatsController`:覆盖 2/5,未覆盖方法:families、active、revenue - `DailyCheckinController`:覆盖 4/5,未覆盖方法:detail - `GameRecordController`:覆盖 1/5,未覆盖方法:getHistory、getBestScores、getStats、getLeaderboard - `HealthDimensionController`:覆盖 4/5,未覆盖方法:radarData - `HealthMealController`:覆盖 1/5,未覆盖方法:list、daily、weekly、alerts - `InviteController`:覆盖 2/5,未覆盖方法:bind、list、getQrCode - `MbtiController`:覆盖 2/5,未覆盖方法:submit、profile、history - `PointsExchangeController`:覆盖 1/5,未覆盖方法:getProductList、getProductDetail、exchangeProduct、getExchangeStats - `SurveyController`:覆盖 1/5,未覆盖方法:activeTemplates、confirmQuestions、submit、history - `TeacherFamilyBindingController`:覆盖 1/5,未覆盖方法:approve、reject、myRequests、cancel - `AdminUnifiedKnowledgeController`:覆盖 1/4,未覆盖方法:section、update、reset - `ConsentController`:覆盖 2/4,未覆盖方法:withdrawConsent、checkConsent - `OctopusController`:覆盖 1/4,未覆盖方法:tentacles、addHelpLog、deleteHelpLog - `ParentAssessmentController`:覆盖 2/4,未覆盖方法:createAssessment、completeAssessment - `AdminHealthPlanController`:覆盖 1/3,未覆盖方法:list、detail - `AdminPackageController`:覆盖 1/3,未覆盖方法:approvePackage、rejectPackage - `BindInviteController`:覆盖 2/3,未覆盖方法:confirmBind - `CfCommissionController`:覆盖 1/3,未覆盖方法:rate、list - `ManualDimensionScoreController`:覆盖 1/3,未覆盖方法:submit、history - `ReportSurveyController`:覆盖 1/3,未覆盖方法:createSurvey、submitSurvey - `ReviewController`:覆盖 1/3,未覆盖方法:getReviewOrderDetail、getReviewStatus - `ScreeningController`:覆盖 1/3,未覆盖方法:submit、history - `VendorController`:覆盖 1/3,未覆盖方法:apply、getVendorInfo - `AdminProfileController`:覆盖 1/2,未覆盖方法:getProfile - `BasicQuotaController`:覆盖 1/2,未覆盖方法:getAllQuotaStatus - `EmiReportController`:覆盖 1/2,未覆盖方法:getFamilyLatestReports - `HealthWaterController`:覆盖 1/2,未覆盖方法:list - `NutritionistController`:覆盖 1/2,未覆盖方法:apply - `ProblemSurveyController`:覆盖 1/2,未覆盖方法:submit - `ProductCategoryController`:覆盖 1/2,未覆盖方法:tree - `PromotionCommissionController`:覆盖 1/2,未覆盖方法:getFamilyTotal ## 四、测试清单(格式化已有测试) | 测试文件 | 类型 | @Test数 | 命中端点 | 直接调用方法数 | 目标类 | 部分/跳过 | | --- | --- | --- | --- | --- | --- | --- | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AuthControllerTest.java` | com | 39 | 0 | 14 | AuthController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DanReportParseServiceTest.java` | com | 38 | 2 | 0 | DanReportController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfPathwayEarnServiceTest.java` | com | 32 | 16 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/WishControllerTest.java` | com | 29 | 4 | 11 | WishController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfBalanceServiceTest.java` | com | 25 | 0 | 0 | CfBalanceController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorChangeServiceTest.java` | com | 23 | 0 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DimensionScoreServiceTest.java` | com | 21 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideRolePermissionTest.java` | com | 21 | 6 | 9 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideFamilyTaskControllerTest.java` | com | 20 | 11 | 8 | GuideFamilyTaskController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorChangeServiceSemanticTest.java` | com | 20 | 0 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ProductOrderControllerTest.java` | com | 20 | 3 | 7 | ProductOrderController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FoodRecommendServiceTest.java` | com | 18 | 0 | 0 | FoodRecommendController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/SupplySystemServiceTest.java` | com | 18 | 0 | 0 | SupplySystemController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AIChatControllerTest.java` | com | 17 | 17 | 3 | AIChatController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/MembershipServiceTest.java` | com | 17 | 0 | 0 | MembershipController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ActivityControllerTest.java` | com | 16 | 9 | 6 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfGrowthPathwayEarnServiceTest.java` | com | 16 | 6 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ProductControllerTest.java` | com | 16 | 8 | 6 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ActivityOrderServiceTest.java` | com | 15 | 0 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/HealthDimensionControllerTest.java` | com | 15 | 3 | 4 | HealthDimensionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ArticleWorkflowTest.java` | com | 14 | 0 | 0 | ArticleController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/NutritionDeficiencyServiceTest.java` | com | 14 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/DimensionAdminControllerTest.java` | com | 13 | 0 | 7 | DimensionAdminController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuidePackageServiceTest.java` | com | 13 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityTeamServiceUnitTest.java` | com | 12 | 0 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfCommissionServiceSettleTest.java` | com | 12 | 2 | 0 | CfCommissionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ConditionEvaluatorServiceTest.java` | com | 12 | 7 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/FiveDimensionScoreServiceTest.java` | com | 12 | 10 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FoodServiceTest.java` | com | 12 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorTimelineServiceTest.java` | com | 12 | 24 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/PaymentControllerTest.java` | com | 12 | 17 | 5 | PaymentController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ArticleControllerTest.java` | com | 11 | 7 | 4 | ArticleController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfReferralServiceSalesTierTest.java` | com | 11 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfSpendDispatchServiceTest.java` | com | 11 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DataMigrationServiceTest.java` | com | 11 | 5 | 0 | DataMigrationController | skip×1、⚠部分 | | `cfc-backend/src/test/java/com/etotem/cfc/config/FamilyAccessInterceptorTest.java` | com | 11 | 0 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/PdfParseServiceTest.java` | com | 11 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ActivityAdminServiceTest.java` | com | 10 | 9 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityAuditTest.java` | com | 10 | 4 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/GrowthRecordSyncFlowTest.java` | com | 10 | 9 | 4 | GrowthController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuideHierarchyServiceTest.java` | com | 10 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/HealthPlanReviewGuardTest.java` | com | 10 | 0 | 0 | HealthPlanController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/IndicatorFavoriteControllerTest.java` | com | 10 | 8 | 3 | IndicatorFavoriteController | — | | `cfc-backend/src/test/java/com/etotem/cfc/common/AdminRolesTest.java` | com | 9 | 0 | 0 | AdminController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/BundlePricingCalculatorTest.java` | com | 9 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FamilyFoodOverviewServiceTest.java` | com | 9 | 9 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/GuideFamilyAccessGuardTest.java` | com | 9 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideTeamControllerTest.java` | com | 9 | 6 | 5 | GuideTeamController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorTrendServiceTest.java` | com | 9 | 17 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/KnowledgeBaseBackfillTest.java` | com | 9 | 6 | 0 | KnowledgeBaseController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/PlannerBindInviteFlowTest.java` | com | 9 | 15 | 5 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/PlatformPointsServiceTest.java` | com | 9 | 2 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/SpecialPriceServiceTest.java` | com | 9 | 0 | 0 | SpecialPriceController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityRegistrationQuotaUnitTest.java` | com | 8 | 3 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AdminSpecialPriceControllerTest.java` | com | 8 | 12 | 4 | AdminSpecialPriceController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ArticleAutoTagServiceTest.java` | com | 8 | 0 | 0 | ArticleController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionRedlinesTest.java` | com | 8 | 0 | 0 | AttributionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/CfBalanceControllerTest.java` | com | 8 | 7 | 3 | CfBalanceController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfEarnDispatchServiceTest.java` | com | 8 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/util/CfFormulaEvaluatorTest.java` | com | 8 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/FamilyControllerTest.java` | com | 8 | 1 | 3 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuideApplicationServiceTest.java` | com | 8 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/GuideOrderControllerTest.java` | com | 8 | 11 | 3 | GuideOrderController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceAuditConfirmTest.java` | com | 8 | 0 | 0 | HealthReportController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceTest.java` | com | 8 | 0 | 0 | HealthReportController | — | | `cfc-backend/src/test/java/com/etotem/cfc/orchestration/OrchestrationEngineTest.java` | com | 8 | 0 | 0 | OrchestrationController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderServiceSpecialDealTest.java` | com | 8 | 1 | 0 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/RealNameBackfillServiceTest.java` | com | 8 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/config/AttributionStage1FoundationTest.java` | com | 7 | 11 | 0 | AttributionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/EnergySystemFlowTest.java` | com | 7 | 22 | 5 | EnergyController | skip×1、⚠部分 | | `cfc-backend/src/test/java/com/etotem/cfc/unit/FamilyMemberDimensionBaseScoreServiceTest.java` | com | 7 | 10 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuideFamilyServiceTest.java` | com | 7 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/orchestration/OrchestrationIntegrationTest.java` | com | 7 | 0 | 0 | OrchestrationController | — | | `cfc-backend/src/test/java/com/etotem/cfc/task/TaskCheckinWebhookReminderTaskTest.java` | com | 7 | 0 | 0 | TaskController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ActivityRegistrationQuotaConcurrencyTest.java` | com | 6 | 0 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ActivityServicePublishTest.java` | com | 6 | 0 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ArticleRelatedServiceTest.java` | com | 6 | 0 | 0 | ArticleController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfTransferServiceTest.java` | com | 6 | 0 | 0 | CfTransferController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/DailyCheckinStreakFlowTest.java` | com | 6 | 13 | 6 | DailyCheckinController | — | | `cfc-backend/src/test/java/com/etotem/cfc/config/DatabaseInitializerSeedTest.java` | com | 6 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/impl/DimensionScoreServiceImplTest.java` | com | 6 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/GuidePackageTemplateServiceTest.java` | com | 6 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/GuidePlanReviewControllerAuthTest.java` | com | 6 | 1 | 4 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/HealthCheckinCfEarnCallSiteTest.java` | com | 6 | 0 | 2 | HealthCheckinController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/HealthPlanDeleteCascadeTest.java` | com | 6 | 1 | 0 | HealthPlanController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/HealthPlanDeleteControllerTest.java` | com | 6 | 3 | 2 | HealthPlanController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/HealthReportControllerProxyParseBindingTest.java` | com | 6 | 0 | 1 | HealthReportController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorFavoriteServiceTest.java` | com | 6 | 6 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/MemberPriceResolverTest.java` | com | 6 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/MembershipPaySwitchTest.java` | com | 6 | 10 | 0 | MembershipController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderServiceFulfillmentMultiModeTest.java` | com | 6 | 0 | 0 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ReportAnalyzeQuotaServiceTest.java` | com | 6 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ReportBlockAssemblerTest.java` | com | 6 | 16 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ReportDateExtractorTest.java` | com | 6 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ServiceContentServiceTest.java` | com | 6 | 0 | 0 | ServiceContentController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ServiceRoleApproveTest.java` | com | 6 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/util/SpearmanUtilTest.java` | com | 6 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/StatsControllerTest.java` | com | 6 | 10 | 2 | StatsController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/WithdrawalServiceTest.java` | com | 6 | 0 | 0 | WithdrawalController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityTagServiceTest.java` | com | 5 | 1 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionAdjustServiceTest.java` | com | 5 | 3 | 0 | AttributionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/BundlePricingServiceTest.java` | com | 5 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfLegacyLedgerWiringTest.java` | com | 5 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CommissionServiceReferralF24Test.java` | com | 5 | 0 | 0 | CommissionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DimensionEnergySyncServiceTest.java` | com | 5 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/FamilyJoinRequestServiceReferrerBindTest.java` | com | 5 | 0 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/FamilyNamingSupportTest.java` | com | 5 | 0 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/FamilyPlatformPointsServiceCouponTest.java` | com | 5 | 0 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/HealthPlanLazyBackfillTest.java` | com | 5 | 0 | 0 | HealthPlanController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceBackfillResilienceTest.java` | com | 5 | 7 | 0 | HealthReportController | — | | `cfc-backend/src/test/java/com/etotem/cfc/config/JwtInterceptorLoginRequiredTest.java` | com | 5 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/MiniGameServiceTest.java` | com | 5 | 0 | 0 | MiniGameController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/NumSoulCalculatorTest.java` | com | 5 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderComboStockTest.java` | com | 5 | 0 | 0 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductSkuComboServiceTest.java` | com | 5 | 0 | 0 | ProductSkuController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/RelationshipQuestionnaireServiceTest.java` | com | 5 | 0 | 0 | RelationshipQuestionnaireController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/TaskServiceMinigameTest.java` | com | 5 | 0 | 0 | TaskController | skip×1、⚠部分 | | `cfc-backend/src/test/java/com/etotem/cfc/service/UserServiceEffectiveFamilyIdsTest.java` | com | 5 | 0 | 0 | UserController | — | | `cfc-backend/src/test/java/com/etotem/cfc/task/VirtualPayTimeoutTaskTest.java` | com | 5 | 0 | 0 | VirtualPayController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/admin/AdminProductControllerBatchShelveTest.java` | com | 4 | 1 | 1 | AdminController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/impl/CfGrowthEarnCallSiteTest.java` | com | 4 | 1 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ChallengeScoreServiceTest.java` | com | 4 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CommissionDistService410Test.java` | com | 4 | 0 | 0 | CommissionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/EnergyServiceWealthIncomeTest.java` | com | 4 | 0 | 0 | EnergyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/family/FamilyMembersControllerListTest.java` | com | 4 | 1 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FortuneServiceTest.java` | com | 4 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/GuideFamilyQueryServiceTest.java` | com | 4 | 4 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/GuideModuleIntegrationTest.java` | com | 4 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/HealthReportControllerListPaginationTest.java` | com | 4 | 9 | 1 | HealthReportController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorMappingServiceTest.java` | com | 4 | 0 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/PointsExchangeServiceTest.java` | com | 4 | 0 | 0 | PointsExchangeController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/impl/PurchaseServiceImplRenewalTest.java` | com | 4 | 5 | 0 | PurchaseController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ServiceTypeServiceTest.java` | com | 4 | 0 | 0 | ServiceTypeController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/TaskPlanServiceTest.java` | com | 4 | 2 | 0 | TaskController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/TaskServiceCfEarnTest.java` | com | 4 | 0 | 0 | TaskController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/TeacherLoginTest.java` | com | 4 | 0 | 0 | TeacherController | skip×1、⚠部分 | | `cfc-backend/src/test/java/com/etotem/cfc/service/TencentTtsServiceAuthorizationTest.java` | com | 4 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/WishServiceTest.java` | com | 4 | 0 | 0 | WishController | — | | `cfc-backend/src/test/java/com/etotem/cfc/dto/ActivityDTOTest.java` | com | 3 | 0 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityRegistrationListTest.java` | com | 3 | 5 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ActivityRegistrationRejectTest.java` | com | 3 | 0 | 0 | ActivityController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/AdminFamilyOverviewControllerTest.java` | com | 3 | 0 | 2 | AdminFamilyOverviewController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ArticleAudioServiceChunkFilterTest.java` | com | 3 | 0 | 0 | ArticleController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/ArticleCategoryControllerTest.java` | com | 3 | 0 | 1 | ArticleCategoryController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/AttributionSurveyRoutingTest.java` | com | 3 | 5 | 1 | AttributionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/CartServiceTest.java` | com | 3 | 0 | 0 | CartController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfLegacyLedgerMigrationServiceTest.java` | com | 3 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/FamilyAdminOverviewServiceTest.java` | com | 3 | 4 | 0 | FamilyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/GuideFamilyServiceBindTest.java` | com | 3 | 0 | 0 | GuideController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/HealthReportServiceIndicatorsTest.java` | com | 3 | 26 | 0 | HealthReportController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/NormalizeIndicatorPipelineTest.java` | com | 3 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/task/OrderTimeoutCancelTaskSpecialDealTest.java` | com | 3 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/PaymentServiceORDRoutingTest.java` | com | 3 | 1 | 0 | PaymentController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductOrderServiceTest.java` | com | 3 | 0 | 0 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ProductOrderServiceUpdateExpressFieldTest.java` | com | 3 | 0 | 0 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/RepeatTaskGeneratorPassThroughTest.java` | com | 3 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/admin/ReportParserAdminControllerTest.java` | com | 3 | 0 | 1 | ReportParserAdminController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ReviewCenterSummaryTest.java` | com | 3 | 0 | 0 | ReviewController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ServiceRoleFilterTest.java` | com | 3 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/SpecialPriceControllerTest.java` | com | 3 | 8 | 1 | SpecialPriceController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/TaskProgressUpdateTest.java` | com | 3 | 0 | 0 | TaskController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ArticleBackfillTest.java` | com | 2 | 0 | 0 | ArticleController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionPipelineMockTest.java` | com | 2 | 36 | 0 | AttributionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/AttributionPlanServiceTest.java` | com | 2 | 8 | 0 | AttributionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/CfCommissionServiceTest.java` | com | 2 | 0 | 0 | CfCommissionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ConsigneeServiceBackfillTest.java` | com | 2 | 0 | 0 | ConsigneeController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/DailyTaskControllerTest.java` | com | 2 | 1 | 1 | DailyTaskController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/EnergyServiceFamilyTest.java` | com | 2 | 0 | 0 | EnergyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/FiveDimensionSelfCheckServiceTest.java` | com | 2 | 0 | 0 | FiveDimensionSelfCheckController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/IndicatorControllerTest.java` | com | 2 | 1 | 1 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductUpdateClearTest.java` | com | 2 | 0 | 0 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/UserAddressServiceBackfillTest.java` | com | 2 | 0 | 0 | UserController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/UserServiceFamilyNameLinkTest.java` | com | 2 | 0 | 0 | UserController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/AiGatewayTimeoutTest.java` | com | 1 | 2 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/AttributionControllerTest.java` | com | 1 | 0 | 0 | AttributionController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/DailyOverviewServiceTest.java` | com | 1 | 1 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorCorrelationServiceTest.java` | com | 1 | 0 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/IndicatorValueMapperTest.java` | com | 1 | 0 | 0 | IndicatorController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/mind/MindFortuneControllerTest.java` | com | 1 | 1 | 0 | MindFortuneController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ProductDTOMappingTest.java` | com | 1 | 0 | 0 | ProductController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ReportSummaryServiceCompletenessTest.java` | com | 1 | 0 | 0 | ReportSummaryController | — | | `cfc-backend/src/test/java/com/etotem/cfc/common/TestRoles.java` | com | 0 | 0 | 0 | — | — | ## 五、使用说明 - 本 ledger 由 `discover_tests.py` 生成,可随时重跑刷新。 - 若需把某缺口/部分覆盖转化为测试任务,走 `tdd_orchestrate.py --add-task --requirement <源> --design <源>` 显式入池(须带溯源锚点)。 - 不在此 ledger 中发明任何需求键;一切以仓库真实测试源代码为准。