# TDD 测试发现 Ledger(自动扫描 · 只读) > 生成依据:`tdd-orchestrator/scripts/discover_tests.py` 扫描 `cfc-backend/src/main/java` 与 `cfc-backend/src/test/java`。 > 本 ledger 仅**格式化与跟踪已有测试**,不创建任何测试用例。覆盖判定兼容两种风格:HTTP 端点 + 直接方法调用。 ## 一、汇总 | 指标 | 数值 | | --- | --- | | 控制器总数 | 358 | | handler 方法总数 | 1941 | | handler 方法已覆盖 | 365 (18.8%) | | 单元-全覆盖(handler 方法) | 25 | | 单元-部分覆盖(handler 方法) | 192 | | 单元-未覆盖(handler 方法) | 140 | | 单元-无handler 方法 | 1 | | 测试文件数 | 205 | | @Test 方法总数 | 1545 | | 含跳过/假设项(test 级 partial) | 4 | ## 二、未覆盖控制器(发现「缺口」· 非发明) > 以下控制器在当前测试源中**没有任何handler 方法被命中**。这是真实扫描得到的覆盖缺口。 共 140 个: - `DanAssessmentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/DanAssessmentController.java`,29 方法) - `AdminInventoryController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminInventoryController.java`,15 方法) - `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 方法) - `SupplyHierarchyController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/SupplyHierarchyController.java`,11 方法) - `AdminGuideController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminGuideController.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 方法) - `GutHealthProjectController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/GutHealthProjectController.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 方法) - `ArticleCommentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/content/ArticleCommentController.java`,8 方法) - `PurchaseController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/PurchaseController.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 方法) - `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 方法) - `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 方法) - `AssessmentAppointmentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/assessment/AssessmentAppointmentController.java`,6 方法) - `ContactMatchController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/ContactMatchController.java`,6 方法) - `CouponGiftController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/CouponGiftController.java`,6 方法) - `DietIngredientController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/diet/DietIngredientController.java`,6 方法) - `FamilyEarningsController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/FamilyEarningsController.java`,6 方法) - `FamilyPlatformBalanceController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/FamilyPlatformBalanceController.java`,6 方法) - `MindFortuneController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/mind/MindFortuneController.java`,6 方法) - `PackagePaymentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/PackagePaymentController.java`,6 方法) - `ProductDeliveryConfigController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/product/ProductDeliveryConfigController.java`,6 方法) - `RewardController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/reward/RewardController.java`,6 方法) - `ServiceRoleApplicationController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/ServiceRoleApplicationController.java`,6 方法) - `AdminCategoryController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminCategoryController.java`,5 方法) - `AssessmentReportController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/assessment/AssessmentReportController.java`,5 方法) - `DietRecommendationController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/diet/DietRecommendationController.java`,5 方法) - `FatGoalController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/fatloss/FatGoalController.java`,5 方法) - `GuideAssessmentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/guide/GuideAssessmentController.java`,5 方法) - `KnowledgeBaseVectorController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/KnowledgeBaseVectorController.java`,5 方法) - `MealRecommendController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/MealRecommendController.java`,5 方法) - `MediaController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/MediaController.java`,5 方法) - `ParentController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/family/ParentController.java`,5 方法) - `PointsController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/family/PointsController.java`,5 方法) - `RecommendationStatsController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/recommendation/RecommendationStatsController.java`,5 方法) - `RelationshipQualityController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/family/RelationshipQualityController.java`,5 方法) - `RewardWishlistController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/reward/RewardWishlistController.java`,5 方法) - `AdminBodyFatScaleController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/AdminBodyFatScaleController.java`,4 方法) - `AssessmentComparisonController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/assessment/AssessmentComparisonController.java`,4 方法) - `AttributionController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/AttributionController.java`,4 方法) - `DietRecordController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/diet/DietRecordController.java`,4 方法) - `DimensionRegistryController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/admin/DimensionRegistryController.java`,4 方法) - `DistributionInviteController`(`cfc-backend/src/main/java/com/etotem/cfc/controller/DistributionInviteController.java`,4 方法) - …(其余 80 个见完整扫描) ## 三、部分覆盖控制器(已做一部分测试) > 这些控制器**已有测试但只覆盖了部分handler 方法**——即用户要求的「已经做了一部分测试的情况,要能够找到」。 共 192 个: - `AdminController`:覆盖 1/65,未覆盖方法:getUsers、createUser、getUser、updateUser、resetUserPassword、searchUsers、deleteUser、getChild、updateChild、adjustPoints - `HealthReportController`:覆盖 1/59,未覆盖方法:createReport、getLatestReport、listFamilyReports、listAllReports、getReportIndicatorsWithPrevious、listIndicators、getMemberIndicators、getGutFlora、rebuildIndicatorCurrent、getMemberIndicatorCurrent - `HealthKnowledgeBaseController`:覆盖 2/28,未覆盖方法:batchQuery、add、update、delete、importKnowledgeBase、queryBacteria、batchQueryBacteria、queryIndicator、queryFood、getSection - `AdminArticleController`:覆盖 1/22,未覆盖方法:create、update、detail、delete、publishById、publish、backfillTags、toggleFeatured、move、audit - `ProductOrderController`:覆盖 7/19,未覆盖方法:myOrderCounts、vendorConfirm、reviewUpdate、ship、applyRefund、handlePaymentSuccess、notify、activityAudit、activitySignIn、activityComplete - `AuthController`:覆盖 14/18,未覆盖方法:setSwitchPassword、verifyToken、ssoTicket、ssoLogin - `TaskController`:覆盖 1/18,未覆盖方法:getMinigameOptions、createTask、getTodayTasks、completeTask、startTask、reviewTask、getTaskHistory、getPendingReviewTasks、getTodayParentTasks、completeParentTask - `FamilyUserController`:覆盖 2/17,未覆盖方法:getUserInfo、updateUserInfo、joinFamily、createFamily、switchMode、switchRole、switchToFamilyMember、switchBackToParent、switchBackVerify、getFamilyMemberren - `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`:覆盖 2/13,未覆盖方法:team、stats、balance、teamList、funnel、teamConsumption、myReferrer、teamTree、teamGrowthCurve、teamAllMembersConsumptionCurve - `GrowthRecordController`:覆盖 4/13,未覆盖方法:getRecordList、getChildRecords、getRecordDetail、deleteRecord、syncExternalResult、createFromUpload、createSupplement、checkDuplicate、getSupplements - `HealthPlanController`:覆盖 2/13,未覆盖方法:generate、regenerateSection、save、confirm、detail、planTasks、availableTeachers、listPendingReview、updatePlan、approvePlan - `AdminCouponController`:覆盖 1/12,未覆盖方法:PreAuthorize、PreAuthorize、PreAuthorize、PreAuthorize、PreAuthorize、PreAuthorize、PreAuthorize、PreAuthorize、giftTransfers、PreAuthorize - `StatsController`:覆盖 4/12,未覆盖方法:getDashboardSummary、getRevenueStats、getMembershipStats、childOverview、familySummary、pointsRanking、getTrafficAnalytics、recordProductView - `SupplySystemController`:覆盖 1/12,未覆盖方法:create、update、detail、toggleStatus、listAll、getMySystem、getMyTeams、memberList、addMember、removeMember - `WishController`:覆盖 11/12,未覆盖方法:priceAlias - `AIChatController`:覆盖 8/11,未覆盖方法:reportAnalyze、deleteConversation、transcribe - `BadgeController`:覆盖 1/11,未覆盖方法:getAllBadges、getBadgeDetail、createBadge、updateBadge、deleteBadge、grantBadge、getMemberBadges、toggleFavorite、getMemberStats、getFamilyRanking - `PaymentController`:覆盖 5/11,未覆盖方法:createWechatNativePay、getPaymentStatus、getOAuth2Url、oauth2Callback、handleV3Notify、generateQrCode - `TrainingPlanController`:覆盖 1/11,未覆盖方法:getPlanDetail、createPlan、updatePlan、addItem、updateItem、deleteItem、generateFromRecommendations、deployPlan、getExecutionBoard、deletePlan - `ActivityTeamController`:覆盖 1/10,未覆盖方法:create、detail、memberList、addMember、removeMember、assign、assignList、revokeAssignment、teamActivities - `AdminAuthController`:覆盖 5/10,未覆盖方法:getAdminInfo、changePassword、updateInfo、resetPassword、accountRoles - `AdminVirtualTeamController`:覆盖 2/10,未覆盖方法:create、update、toggle、addMember、removeMember、updateMember、userTeams、tree - `CouponController`:覆盖 1/10,未覆盖方法:claim、apply、exchange、exchangeable、productCoupons、checkoutList、joinRules、availableTemplates、my - `FamilyMembersController`:覆盖 2/10,未覆盖方法:switchToMember、kickMember、leaveFamily、recycleMember、updateMember、renameFamily、checkEditable、logs - `GuideFamilyTaskController`:覆盖 8/10,未覆盖方法:unbindFamily、getDashboardStats - `SubscriptionController`:覆盖 1/10,未覆盖方法:getPlans、createOrder、subscribe、cancel、setAutoRenew、getMyBenefits、checkBenefit、getTier、updateTier - `AdminButlerController`:覆盖 4/9,未覆盖方法:review、assignMember、assignments、unassign、toggleAccepting - `AdminProductController`:覆盖 2/9,未覆盖方法:review、shelve、detail、create、update、copy、delete - `EnergyController`:覆盖 5/9,未覆盖方法:configureSourceRatios、getScoreHistory、getFamilyScoreHistory、getWealthDetail - `FileRecordController`:覆盖 1/9,未覆盖方法:upload、update、deleteFile、getTags、tagCreate、tagUpdate、tagDelete、stats - `FiveDimensionSelfCheckController`:覆盖 3/9,未覆盖方法:submit、getHistory、ignoreSelfCheck、generatePlan、getTrendAnalysis、aiGenerateQuestions - `KnowledgeBaseController`:覆盖 1/9,未覆盖方法:backfillTags、get、save、delete、bindDimensions、bindTags、uploadFile、fetchUrl - `ProductController`:覆盖 6/9,未覆盖方法:updateImages、specMap、relatedProducts - `AdminActivityController`:覆盖 1/8,未覆盖方法:review、detail、submitReview、audit、backfillTags、withdraw、reDraft - `CognitiveController`:覆盖 1/8,未覆盖方法:getChildCognitiveScores、getFamilyCognitiveScores、updateCognitiveScore、getRecommendations、createTaskFromRecommendation、getNorms、submitSelfTest - `ContactController`:覆盖 1/8,未覆盖方法:create、update、delete、detail、importPhone、interaction、inviteToFamily - `DanReportController`:覆盖 1/8,未覆盖方法:upload、edit、confirm、discard、completeAnalysis、detail、compare - `FamilyChallengeController`:覆盖 1/8,未覆盖方法:getHistory、updateProgress、respondChallenge、getTemplates、createChallenge、updateChallenge、deleteChallenge - `GuideTeamController`:覆盖 6/8,未覆盖方法:checkStatus、leaveTeam - `SupplyManageController`:覆盖 1/8,未覆盖方法:detail、create、update、delete、addRole、removeRole、adjustTier - `AdminOrgController`:覆盖 1/7,未覆盖方法:create、update、disable、detail、myOrg、userSearch - `AdminProductOrderController`:覆盖 1/7,未覆盖方法:detail、ship、updateExpress、close、approveRefund、rejectRefund - `AdminUnlockGateController`:覆盖 1/7,未覆盖方法:save、delete、sort、toggle、resetFamily、getFamilyProgress - `CartController`:覆盖 1/7,未覆盖方法:add、update、remove、count、comboOffer、replaceCombo - `DoaController`:覆盖 1/7,未覆盖方法:createStage、stageDetail、cancelStage、submitPlan、submitReview、weekList - `EmotionCheckinController`:覆盖 3/7,未覆盖方法:create、stats、weeklyReport、recognizeEmotion - `GrowthPlanController`:覆盖 1/7,未覆盖方法:createPlan、getChildPlans、getActivePlan、getPlanDetail、updatePlan、reviewPlan - `GuideActivityController`:覆盖 1/7,未覆盖方法:getActivityDetail、createActivity、updateActivity、publishActivity、cancelActivity、deleteActivity - `SupplyTeamController`:覆盖 1/7,未覆盖方法:listCustomers、bindCustomer、getRelation、getInviteCode、getInviteInfo、joinByInviteCode - `AdminEnergyConfigController`:覆盖 1/6,未覆盖方法:sourceList、sourceSave、sourceDelete、dailyLimits、dailyLimitSave - `AdminEnergyRuleController`:覆盖 1/6,未覆盖方法:create、update、delete、toggle、dimensions - `AdminFoodController`:覆盖 1/6,未覆盖方法:create、update、delete、detail、saveMonths - `AdminGuidePopupController`:覆盖 2/6,未覆盖方法:create、update、delete、stats - `AdminHomeBannerController`:覆盖 1/6,未覆盖方法:save、delete、batchDelete、toggle、updateSort - `AdminNoticeController`:覆盖 1/6,未覆盖方法:all、create、update、delete、pin - `AdminPeriodicServiceController`:覆盖 1/6,未覆盖方法:detail、create、update、delete、toggle - `AdminPlannerExamController`:覆盖 1/6,未覆盖方法:papers、createPaper、updatePaper、deletePaper、saveQuestions - `AdminPromotionTierController`:覆盖 1/6,未覆盖方法:get、save、delete、evaluateAll、getUserTier - `AdminSpecialPriceController`:覆盖 5/6,未覆盖方法:update - `AdminSystemPromptController`:覆盖 1/6,未覆盖方法:save、reset、delete、listVersions、rollback - `ButlerController`:覆盖 1/6,未覆盖方法:apply、getProfile、updateProfile、getServiceRecords、getCommissions - `ContentSectionController`:覆盖 1/6,未覆盖方法:getVisibleSections、getDetail、create、update、delete - `FoodRecommendController`:覆盖 2/6,未覆盖方法:getIndex、getHistory、getByFamily、getCautionFoods - `IndicatorAdminController`:覆盖 1/6,未覆盖方法:create、update、delete、listValues、backfill - `IndicatorController`:覆盖 2/6,未覆盖方法:quickLookup、sourceTypes、periods、correlationList - `InsurancePolicyController`:覆盖 1/6,未覆盖方法:detail、create、update、delete、upload - `PackageTemplateController`:覆盖 1/6,未覆盖方法:Operation、Operation、Operation、Operation、Operation - `PromotionMaterialController`:覆盖 1/6,未覆盖方法:detail、byScenario、create、update、delete - `ReportTemplateController`:覆盖 1/6,未覆盖方法:get、save、delete、toggle、indicators - `ServiceContentController`:覆盖 1/6,未覆盖方法:Operation、Operation、Operation、Operation、Operation - `ServiceTypeController`:覆盖 1/6,未覆盖方法:Operation、Operation、Operation、Operation、Operation - `SupplierProductController`:覆盖 1/6,未覆盖方法:create、update、detail、delete、shelve - `UserAddressController`:覆盖 1/6,未覆盖方法:get、create、update、delete、setDefault - `ActivityOrderController`:覆盖 1/5,未覆盖方法:create、pay、handlePaymentSuccess、notify - `AdminCommissionConfigController`:覆盖 2/5,未覆盖方法:getConfig、settle、refund - `AdminDiscountController`:覆盖 1/5,未覆盖方法:create、update、toggle、delete - `AdminOrgStatsController`:覆盖 2/5,未覆盖方法:families、active、revenue - `AdminPlannerCertificationController`:覆盖 1/5,未覆盖方法:syncHours、batchSyncHours、initByUser、backfill - `DailyCheckinController`:覆盖 4/5,未覆盖方法:detail - `DimensionConfigController`:覆盖 1/5,未覆盖方法:get、save、delete、tree - `EcomSupplierController`:覆盖 1/5,未覆盖方法:all、save、update、delete - `GameRecordController`:覆盖 1/5,未覆盖方法:getHistory、getBestScores、getStats、getLeaderboard - `HealthCircleController`:覆盖 1/5,未覆盖方法:create、join、leave、ranking - `HealthDimensionController`:覆盖 4/5,未覆盖方法:radarData - `HealthGrowthRecordController`:覆盖 1/5,未覆盖方法:detail、create、update、delete - `HealthMealController`:覆盖 2/5,未覆盖方法:daily、weekly、alerts - `InviteController`:覆盖 3/5,未覆盖方法:bind、getQrCode - `MbtiController`:覆盖 2/5,未覆盖方法:submit、profile、history - `MiniGameController`:覆盖 1/5,未覆盖方法:getGameByCode、getAllGames、updateStatus、completeGame - `PointsExchangeController`:覆盖 1/5,未覆盖方法:getProductList、getProductDetail、exchangeProduct、getExchangeStats - `ProductSkuController`:覆盖 1/5,未覆盖方法:get、create、update、delete - `RecommendationRuleAdminController`:覆盖 1/5,未覆盖方法:create、update、delete、batchEnable - `ReportMemberPermissionController`:覆盖 1/5,未覆盖方法:listByMember、grant、revoke、visibleMembers - `SupplySettlementController`:覆盖 1/5,未覆盖方法:detail、detailItems、create、confirm - `SurveyController`:覆盖 1/5,未覆盖方法:activeTemplates、confirmQuestions、submit、history - `TeacherFamilyBindingController`:覆盖 1/5,未覆盖方法:approve、reject、myRequests、cancel - `TeacherMessageController`:覆盖 1/5,未覆盖方法:sendMessage、replyMessage、getUnreadCount、getMyMessages - `AdminActivityCheckinController`:覆盖 1/4,未覆盖方法:export、add、review - `AdminAfterSalesController`:覆盖 1/4,未覆盖方法:detail、review、complete - `AdminCfEarnRuleController`:覆盖 1/4,未覆盖方法:save、toggle、history - `AdminEnergyBehaviorConfigController`:覆盖 1/4,未覆盖方法:detail、update、toggle - `AdminOrgMemberController`:覆盖 1/4,未覆盖方法:addMember、removeMember、changeType - `AdminPlannerCertCategoryController`:覆盖 1/4,未覆盖方法:create、update、delete - `AdminPlannerCourseController`:覆盖 1/4,未覆盖方法:create、update、delete - `AdminPlannerOfflineCourseController`:覆盖 1/4,未覆盖方法:create、update、delete - `AdminProductPpointController`:覆盖 1/4,未覆盖方法:save、delete、byProduct - `AdminRecipeController`:覆盖 1/4,未覆盖方法:create、update、delete - `AdminSettlementController`:覆盖 1/4,未覆盖方法:detail、confirm、stats - `AdminSubscriptionController`:覆盖 1/4,未覆盖方法:cancelSubscription、activateSubscription、getBenefitConfig - `AdminSupplierController`:覆盖 1/4,未覆盖方法:save、update、delete - `AdminSurveyController`:覆盖 1/4,未覆盖方法:save、delete、aiGenerate - `AdminUnifiedKnowledgeController`:覆盖 1/4,未覆盖方法:section、update、reset - `BaziConfigController`:覆盖 1/4,未覆盖方法:create、update、delete - `BloodTypeConfigController`:覆盖 1/4,未覆盖方法:create、update、delete - `ConsentController`:覆盖 2/4,未覆盖方法:withdrawConsent、checkConsent - `ConsigneeController`:覆盖 1/4,未覆盖方法:detail、save、delete - `FamilyMetricAggConfigController`:覆盖 1/4,未覆盖方法:save、delete、updateStatus - `FatDietController`:覆盖 1/4,未覆盖方法:create、delete、caloriesSummary - `FatWeightController`:覆盖 1/4,未覆盖方法:create、update、delete - `FinanceCheckinController`:覆盖 1/4,未覆盖方法:stats、create、delete - `HealthCheckinController`:覆盖 1/4,未覆盖方法:create、delete、stats - `MbtiProfileController`:覆盖 1/4,未覆盖方法:save、delete、seed - `MicroActionController`:覆盖 1/4,未覆盖方法:today、complete、checkToday - `NumSoulDetailConfigController`:覆盖 1/4,未覆盖方法:create、update、delete - `OctopusController`:覆盖 1/4,未覆盖方法:tentacles、addHelpLog、deleteHelpLog - `ParentAssessmentController`:覆盖 2/4,未覆盖方法:createAssessment、completeAssessment - `ZodiacConfigController`:覆盖 1/4,未覆盖方法:create、update、delete - `ActivityFeedbackController`:覆盖 1/3,未覆盖方法:submit、my - `ActivityMaterialController`:覆盖 1/3,未覆盖方法:upload、delete - `AdminCfRateTierController`:覆盖 1/3,未覆盖方法:save、delete - `AdminHealthPlanController`:覆盖 2/3,未覆盖方法:detail - `AdminNotificationTemplateController`:覆盖 1/3,未覆盖方法:save、delete - `AdminPackageController`:覆盖 1/3,未覆盖方法:approvePackage、rejectPackage - `AdminPlanRuleController`:覆盖 1/3,未覆盖方法:save、delete - `AdminPosterTemplateController`:覆盖 1/3,未覆盖方法:save、delete - `AdminProblemDomainController`:覆盖 1/3,未覆盖方法:save、delete - `AdminPurchaseFieldController`:覆盖 1/3,未覆盖方法:predefined、save - `AdminSeasonalController`:覆盖 1/3,未覆盖方法:create、delete - `AdminServiceConfigController`:覆盖 1/3,未覆盖方法:save、invalidate - `AfterSalesController`:覆盖 1/3,未覆盖方法:create、detail - `BindInviteController`:覆盖 2/3,未覆盖方法:confirmBind - `CfCommissionController`:覆盖 2/3,未覆盖方法:rate - `CommissionDistController`:覆盖 1/3,未覆盖方法:userLogs、userTotal - `ContentDimensionThresholdController`:覆盖 1/3,未覆盖方法:batchSave、delete - `FatExerciseController`:覆盖 1/3,未覆盖方法:create、delete - `GrowthTaskController`:覆盖 1/3,未覆盖方法:claim、acceptDynamic - `GuideOrderController`:覆盖 1/3,未覆盖方法:Operation、Operation - `GuidePopupController`:覆盖 1/3,未覆盖方法:trigger、consume - `HealthExerciseController`:覆盖 1/3,未覆盖方法:create、syncWechatSteps - `IndicatorCorrelationAdminController`:覆盖 1/3,未覆盖方法:save、calibrate - `InnatePortraitConfigController`:覆盖 1/3,未覆盖方法:update、invalidate - `InteractionLogController`:覆盖 1/3,未覆盖方法:addInteraction、getInteractionTypes - `KnowledgeTagController`:覆盖 1/3,未覆盖方法:save、delete - `ManualDimensionScoreController`:覆盖 1/3,未覆盖方法:submit、history - `ReportParseAdminController`:覆盖 1/3,未覆盖方法:retry、backfillFood - `ReportSummaryController`:覆盖 1/3,未覆盖方法:detail、download - `ReportSurveyController`:覆盖 1/3,未覆盖方法:createSurvey、submitSurvey - `ReviewController`:覆盖 1/3,未覆盖方法:getReviewOrderDetail、getReviewStatus - `ScreeningController`:覆盖 1/3,未覆盖方法:submit、history - `SysConfigController`:覆盖 1/3,未覆盖方法:update、getAllAsMap - `VendorController`:覆盖 1/3,未覆盖方法:apply、getVendorInfo - `VirtualGoodsConfigAdminController`:覆盖 1/3,未覆盖方法:save、delete - `AdminChallengeScoreConfigController`:覆盖 1/2,未覆盖方法:update - `AdminProductConfigController`:覆盖 1/2,未覆盖方法:ResponseStatus - `AdminProductGiftController`:覆盖 1/2,未覆盖方法:save - `AdminProductGiftRuleController`:覆盖 1/2,未覆盖方法:save - `AdminProfileController`:覆盖 1/2,未覆盖方法:getProfile - `AdminVendorController`:覆盖 1/2,未覆盖方法:review - `BasicQuotaController`:覆盖 1/2,未覆盖方法:getAllQuotaStatus - `CfTransferController`:覆盖 1/2,未覆盖方法:send - `CircleChallengeController`:覆盖 1/2,未覆盖方法:getHistory - `DimensionWeightController`:覆盖 1/2,未覆盖方法:save - `EmiReportController`:覆盖 1/2,未覆盖方法:getFamilyLatestReports - `HealthAlertController`:覆盖 1/2,未覆盖方法:dismiss - `HealthMeditationController`:覆盖 1/2,未覆盖方法:create - `HealthSleepController`:覆盖 1/2,未覆盖方法:create - `IndicatorMappingAdminController`:覆盖 1/2,未覆盖方法:importSeeds - `InviteMilestoneController`:覆盖 1/2,未覆盖方法:claim - `NutritionistController`:覆盖 1/2,未覆盖方法:apply - `ProblemSurveyController`:覆盖 1/2,未覆盖方法:submit - `ProductCategoryController`:覆盖 1/2,未覆盖方法:tree - `PromotionCommissionController`:覆盖 1/2,未覆盖方法:getFamilyTotal - `RecommendController`:覆盖 1/2,未覆盖方法:track - `ReportSummaryAdminController`:覆盖 1/2,未覆盖方法:sync - `SystemPromptPublicController`:覆盖 1/2,未覆盖方法:get - `UserNotificationController`:覆盖 1/2,未覆盖方法:read ## 四、测试清单(格式化已有测试) | 测试文件 | 类型 | @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/service/FoodRecommendServiceTest.java` | com | 21 | 1 | 0 | FoodRecommendController | — | | `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/controller/ai/AIChatControllerGateTest.java` | com | 18 | 15 | 6 | AIChatController | — | | `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/service/MembershipServiceAiGateTest.java` | com | 12 | 0 | 0 | MembershipController | — | | `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/controller/admin/AdminAuthWechatScanTest.java` | com | 11 | 11 | 2 | AdminAuthController | — | | `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/common/ResultCodeFactoryTest.java` | com | 11 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/service/ActivityAdminServiceTest.java` | com | 10 | 10 | 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/controller/admin/AdminAuthControllerLoginStatusTest.java` | com | 10 | 1 | 3 | AdminAuthController | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ComboServiceTest.java` | com | 10 | 3 | 0 | — | — | | `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/controller/guide/TrainingPlanControllerGetPlanListTest.java` | com | 10 | 0 | 0 | TrainingPlanController | — | | `cfc-backend/src/test/java/com/etotem/cfc/common/AdminRolesTest.java` | com | 9 | 0 | 0 | AdminController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/ai/ButlerControllerGateTest.java` | com | 9 | 4 | 6 | ButlerController | — | | `cfc-backend/src/test/java/com/etotem/cfc/integration/controller/DimensionRegistryTreeTest.java` | com | 9 | 6 | 0 | DimensionRegistryController | — | | `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/unit/ComboOfferCalculatorTest.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/controller/guide/TrainingPlanControllerGetPlanDetailTest.java` | com | 8 | 0 | 0 | TrainingPlanController | — | | `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/controller/DimensionRegistryMapContractTest.java` | com | 7 | 0 | 0 | DimensionRegistryController | — | | `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/controller/family/FamilyMembersControllerAddMemberTest.java` | com | 7 | 1 | 1 | 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/controller/admin/SupplyTeamControllerInviteTest.java` | com | 7 | 7 | 0 | SupplyTeamController | — | | `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/util/UserUtilTest.java` | com | 6 | 0 | 0 | UserController | — | | `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/controller/admin/AdminCommissionConfigControllerTest.java` | com | 5 | 0 | 1 | AdminCommissionConfigController | — | | `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/CartReplaceComboTest.java` | com | 5 | 0 | 0 | CartController | — | | `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/service/FamilyMemberServiceIsChildTest.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/controller/HealthReportControllerCreateReportTest.java` | com | 5 | 2 | 0 | HealthReportController | — | | `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/unit/ProductUpdateClearTest.java` | com | 5 | 0 | 0 | ProductController | — | | `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/AdminButlerControllerEnvelopeTest.java` | com | 4 | 8 | 4 | AdminButlerController | — | | `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/unit/FamilyMemberServiceRenameTest.java` | com | 4 | 0 | 0 | FamilyController | — | | `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/service/CfLegacyLedgerMigrationServiceTest.java` | com | 3 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/unit/ComboOrderStockTest.java` | com | 3 | 0 | 0 | — | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/DanAssessmentControllerGetActiveMaterialTest.java` | com | 3 | 0 | 0 | DanAssessmentController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/EnergyControllerGrantEnergyTest.java` | com | 3 | 4 | 1 | EnergyController | — | | `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/ProductDTOMappingTest.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/service/EnergyServiceGrantEnergyTest.java` | com | 2 | 1 | 0 | EnergyController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/family/FamilyMembersControllerRenameFamilyTest.java` | com | 2 | 1 | 0 | FamilyController | — | | `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/ProductListNutritionTagFilterTest.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/RecommendationNutritionTagTest.java` | com | 1 | 0 | 0 | RecommendController | — | | `cfc-backend/src/test/java/com/etotem/cfc/service/ReportSummaryServiceCompletenessTest.java` | com | 1 | 0 | 0 | ReportSummaryController | — | | `cfc-backend/src/test/java/com/etotem/cfc/controller/guide/TeacherMessageControllerMyTest.java` | com | 1 | 1 | 0 | TeacherController | — | | `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 中发明任何需求键;一切以仓库真实测试源代码为准。