@ohos-cpf/3rdloop 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +425 -0
- package/bin/3rdloop.mjs +48 -0
- package/lib/cli.js +741 -0
- package/lib/config.js +318 -0
- package/lib/doctor.js +114 -0
- package/lib/exit-codes.js +31 -0
- package/lib/opencode.js +156 -0
- package/lib/orch.js +427 -0
- package/lib/queries.js +264 -0
- package/lib/runner.js +979 -0
- package/lib/step.js +326 -0
- package/lib/ui.js +223 -0
- package/lib/workflow.js +291 -0
- package/lib/workflows.js +132 -0
- package/package.json +50 -0
- package/vendor/Server/Agent/SkillSelector/README.md +344 -0
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -0
- package/vendor/Server/Agent/SkillSelector/index.js +14 -0
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -0
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -0
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -0
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -0
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -0
- package/vendor/Server/Agent/SkillSelector/types.js +63 -0
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +60 -0
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -0
- package/vendor/Server/Brain/Brain.js +686 -0
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -0
- package/vendor/Server/Brain/PlanPersistence.js +196 -0
- package/vendor/Server/Brain/SkillExecutor.js +251 -0
- package/vendor/Server/Brain/index.js +11 -0
- package/vendor/Server/CLI/cli.js +243 -0
- package/vendor/Server/CLI/opencode/index.js +804 -0
- package/vendor/Server/CLI/opencode.js +5 -0
- package/vendor/Server/DbUse/MessageArchive.js +61 -0
- package/vendor/Server/DbUse/StorageManager.js +107 -0
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -0
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -0
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -0
- package/vendor/Server/DbUse/index.js +160 -0
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -0
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -0
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -0
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -0
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -0
- package/vendor/Server/FlexRunner/index.js +12 -0
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -0
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -0
- package/vendor/Server/Knowledge/index.js +33 -0
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -0
- package/vendor/Server/LoopEngine/index.js +11 -0
- package/vendor/Server/Orchestrator/Orchestrator.js +1425 -0
- package/vendor/Server/Orchestrator/StepNode.js +312 -0
- package/vendor/Server/Orchestrator/index.js +13 -0
- package/vendor/Server/Routes/controllers/BrainController.js +241 -0
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -0
- package/vendor/Server/Routes/controllers/HealthController.js +44 -0
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -0
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -0
- package/vendor/Server/Routes/controllers/OrchestratorController.js +911 -0
- package/vendor/Server/Routes/controllers/StatsController.js +57 -0
- package/vendor/Server/Routes/controllers/StreamController.js +67 -0
- package/vendor/Server/Routes/library/logger.js +179 -0
- package/vendor/Server/Routes/library/zipArchive.js +172 -0
- package/vendor/Server/Routes/router/Router.js +204 -0
- package/vendor/Server/Routes/routes/brain.js +47 -0
- package/vendor/Server/Routes/routes/flexrunner.js +72 -0
- package/vendor/Server/Routes/routes/health.js +28 -0
- package/vendor/Server/Routes/routes/index.js +57 -0
- package/vendor/Server/Routes/routes/knowledge.js +55 -0
- package/vendor/Server/Routes/routes/loopengine.js +58 -0
- package/vendor/Server/Routes/routes/orchestrator.js +61 -0
- package/vendor/Server/Routes/routes/registry.js +98 -0
- package/vendor/Server/Routes/routes/stats.js +23 -0
- package/vendor/Server/Routes/routes/stream.js +30 -0
- package/vendor/Server/Routes/server.js +202 -0
- package/vendor/Server/Routes/sse/SseHub.js +308 -0
- package/vendor/Server/Skills/acceptance-check/SKILL.md +174 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -0
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +314 -0
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +160 -0
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +29 -0
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +222 -0
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +220 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +329 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +99 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +234 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +103 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +108 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +392 -0
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -0
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +313 -0
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +166 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +309 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -0
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +361 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +146 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +253 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +115 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +263 -0
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -0
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +519 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -0
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +229 -0
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +576 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +575 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +491 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -0
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +312 -0
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -0
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +134 -0
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/flutter-interface/README.md +75 -0
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -0
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -0
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -0
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -0
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +518 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +382 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +342 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +519 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +407 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +653 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +397 -0
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +745 -0
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +721 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -0
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -0
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +301 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +105 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +208 -0
- package/vendor/Server/Skills/rn-code-check/SKILL.md +321 -0
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +235 -0
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +189 -0
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +247 -0
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -0
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -0
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -0
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -0
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -0
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +684 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -0
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +58 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +75 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +339 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +83 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +859 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +122 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +279 -0
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -0
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -0
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +506 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +280 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +209 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +498 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -0
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -0
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +255 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +77 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +174 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -0
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -0
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -0
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -0
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -0
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -0
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -0
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -0
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -0
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -0
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -0
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -0
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -0
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -0
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -0
- package/vendor/Server/Skills/task-decomposition/SKILL.md +529 -0
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -0
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -0
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -0
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -0
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -0
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -0
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -0
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +425 -0
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -0
- package/vendor/Server/TestCheck/TestCheck.js +775 -0
- package/vendor/Server/TestCheck/index.js +11 -0
- package/vendor/Server/library/McpToolGuide.js +280 -0
- package/vendor/Server/library/StatsService.js +127 -0
- package/vendor/Server/library/cstTime.js +16 -0
- package/vendor/Server/package.json +17 -0
- package/vendor/VERSION +3 -0
- package/workflows/pr-check.mjs +106 -0
|
@@ -0,0 +1,576 @@
|
|
|
1
|
+
# XTS 用例生成示例
|
|
2
|
+
|
|
3
|
+
本文档展示基于 **lodash(工具函数库)** 的 ohos 化版本接口规格文档生成的完整 XTS 用例描述示例。
|
|
4
|
+
|
|
5
|
+
> 说明:本示例假设已有 lodash ohos 化版本的接口规格文档,接口基于 lodash 的真实 API 设计。用例内容严格来源于接口规格文档,所有接口签名均为真实存在的接口。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 一、接口规格文档摘要(输入示例)
|
|
10
|
+
|
|
11
|
+
以下是假设的 lodash ohos 化版本接口规格文档关键片段(本技能的输入):
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
# lodash ohos 化版本接口规格
|
|
15
|
+
|
|
16
|
+
## 核心接口
|
|
17
|
+
|
|
18
|
+
### _.chunk(array, size)
|
|
19
|
+
- 参数:array: Array(必填);size: number(可选,默认 1)
|
|
20
|
+
- 返回:Array<Array>
|
|
21
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
22
|
+
|
|
23
|
+
### _.clamp(number, lower, upper)
|
|
24
|
+
- 参数:number: number(必填);lower: number(必填);upper: number(必填)
|
|
25
|
+
- 返回:number
|
|
26
|
+
- 功能:将数值限制在 [lower, upper] 范围内
|
|
27
|
+
|
|
28
|
+
### _.clone(value)
|
|
29
|
+
- 参数:value: any(必填)
|
|
30
|
+
- 返回:any
|
|
31
|
+
- 功能:创建值的浅拷贝
|
|
32
|
+
|
|
33
|
+
### _.cloneDeep(value)
|
|
34
|
+
- 参数:value: any(必填)
|
|
35
|
+
- 返回:any
|
|
36
|
+
- 功能:创建值的深拷贝
|
|
37
|
+
|
|
38
|
+
### _.debounce(func, wait, options?)
|
|
39
|
+
- 参数:func: Function(必填);wait: number(必填);options?: DebounceOptions(可选)
|
|
40
|
+
- 返回:Function
|
|
41
|
+
- 功能:创建防抖函数,在 wait 毫秒后执行
|
|
42
|
+
- ⚠️ 注意:此接口涉及异步行为和时间控制,测试需设置合理等待时间
|
|
43
|
+
|
|
44
|
+
### _.defaults(object, ...sources)
|
|
45
|
+
- 参数:object: Object(必填);sources: Object[](必填)
|
|
46
|
+
- 返回:Object
|
|
47
|
+
- 功能:将 sources 的属性填充到 object 的未定义属性中
|
|
48
|
+
|
|
49
|
+
### _.difference(array, ...values)
|
|
50
|
+
- 参数:array: Array(必填);values: Array[](必填)
|
|
51
|
+
- 返回:Array
|
|
52
|
+
- 功能:返回 array 中不在 values 中的元素
|
|
53
|
+
|
|
54
|
+
### _.get(object, path, defaultValue?)
|
|
55
|
+
- 参数:object: Object(必填);path: string | Array<string>(必填);defaultValue?: any(可选)
|
|
56
|
+
- 返回:any
|
|
57
|
+
- 功能:根据路径获取对象属性值
|
|
58
|
+
|
|
59
|
+
### _.set(object, path, value)
|
|
60
|
+
- 参数:object: Object(必填);path: string | Array<string>(必填);value: any(必填)
|
|
61
|
+
- 返回:Object
|
|
62
|
+
- 功能:根据路径设置对象属性值
|
|
63
|
+
|
|
64
|
+
### _.throttle(func, wait, options?)
|
|
65
|
+
- 参数:func: Function(必填);wait: number(必填);options?: ThrottleOptions(可选)
|
|
66
|
+
- 返回:Function
|
|
67
|
+
- 功能:创建节流函数,在 wait 毫秒内最多执行一次
|
|
68
|
+
- ⚠️ 注意:此接口涉及异步行为和时间控制,测试需设置合理等待时间
|
|
69
|
+
|
|
70
|
+
## 辅助接口
|
|
71
|
+
|
|
72
|
+
### _.isPlainObject(value)
|
|
73
|
+
- 参数:value: any(必填)
|
|
74
|
+
- 返回:boolean
|
|
75
|
+
- 功能:检查 value 是否为普通对象
|
|
76
|
+
|
|
77
|
+
### _.isArray(value)
|
|
78
|
+
- 参数:value: any(必填)
|
|
79
|
+
- 返回:boolean
|
|
80
|
+
- 功能:检查 value 是否为数组
|
|
81
|
+
|
|
82
|
+
### _.isNumber(value)
|
|
83
|
+
- 参数:value: any(必填)
|
|
84
|
+
- 返回:boolean
|
|
85
|
+
- 功能:检查 value 是否为数值
|
|
86
|
+
|
|
87
|
+
## UI 相关接口(不可测试)
|
|
88
|
+
|
|
89
|
+
### _.template(templateString, options?)
|
|
90
|
+
- 参数:templateString: string(必填);options?: TemplateOptions(可选)
|
|
91
|
+
- 返回:Function
|
|
92
|
+
- 功能:创建模板编译函数,返回的函数用于生成 HTML 字符串
|
|
93
|
+
- ❌ 不可测试原因:模板函数的输出主要用于 UI 渲染,需配合实际 UI 环境验证
|
|
94
|
+
|
|
95
|
+
## 错误处理
|
|
96
|
+
- 参数类型不匹配:通常返回 undefined 或空值,不抛出异常
|
|
97
|
+
- 空值输入:通常返回空数组/空对象,不抛出异常
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 二、生成的 XTS 用例描述示例
|
|
103
|
+
|
|
104
|
+
以下是本技能基于上述接口规格文档生成的 `ohos_lodashxts用例描述.md` 完整内容示例:
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
```markdown
|
|
109
|
+
# ohos_lodash XTS 用例描述
|
|
110
|
+
|
|
111
|
+
## 概述
|
|
112
|
+
|
|
113
|
+
- **库名称**:lodash(ohos 化版本)
|
|
114
|
+
- **文档生成时间**:2026-05-16
|
|
115
|
+
- **基于文档**:lodash规格文档.md
|
|
116
|
+
- **用例总数**:15
|
|
117
|
+
- **可测试接口数**:11
|
|
118
|
+
- **不可测试接口数**:1
|
|
119
|
+
- **功能覆盖模块**:数组操作、数值处理、对象拷贝、对象属性访问、对象属性设置、类型判断
|
|
120
|
+
|
|
121
|
+
## 接口可测试性分析
|
|
122
|
+
|
|
123
|
+
### 可测试接口列表
|
|
124
|
+
|
|
125
|
+
| 接口名称 | 接口签名 | 可测试原因 |
|
|
126
|
+
|---------|---------|-----------|
|
|
127
|
+
| _.chunk | _.chunk(array: Array, size?: number): Array<Array> | 纯函数,返回值可预测验证 |
|
|
128
|
+
| _.clamp | _.clamp(number: number, lower: number, upper: number): number | 纯函数,返回值可预测验证 |
|
|
129
|
+
| _.clone | _.clone(value: any): any | 纯函数,返回值可与原值对比验证 |
|
|
130
|
+
| _.cloneDeep | _.cloneDeep(value: any): any | 纯函数,返回值可与原值深度对比验证 |
|
|
131
|
+
| _.defaults | _.defaults(object: Object, ...sources: Object[]): Object | 纯函数,返回值属性可验证 |
|
|
132
|
+
| _.difference | _.difference(array: Array, ...values: Array[]): Array | 纯函数,返回值数组内容可验证 |
|
|
133
|
+
| _.get | _.get(object: Object, path: string | Array<string>, defaultValue?: any): any | 纯函数,返回值可验证 |
|
|
134
|
+
| _.set | _.set(object: Object, path: string | Array<string>, value: any): Object | 纯函数,对象属性变化可验证 |
|
|
135
|
+
| _.isPlainObject | _.isPlainObject(value: any): boolean | 纯函数,返回布尔值可验证 |
|
|
136
|
+
| _.isArray | _.isArray(value: any): boolean | 纯函数,返回布尔值可验证 |
|
|
137
|
+
| _.isNumber | _.isNumber(value: any): boolean | 纯函数,返回布尔值可验证 |
|
|
138
|
+
|
|
139
|
+
### 不可测试接口列表
|
|
140
|
+
|
|
141
|
+
| 接口名称 | 接口签名 | 不可测试原因 |
|
|
142
|
+
|---------|---------|-------------|
|
|
143
|
+
| _.template | _.template(templateString: string, options?: TemplateOptions): Function | 模板函数输出主要用于 UI 渲染,需配合实际 UI 环境验证,无法通过执行结果直接判断功能正确性 |
|
|
144
|
+
|
|
145
|
+
### 需额外条件的可测试接口
|
|
146
|
+
|
|
147
|
+
| 接口名称 | 接口签名 | 额外条件 |
|
|
148
|
+
|---------|---------|---------|
|
|
149
|
+
| _.debounce | _.debounce(func: Function, wait: number, options?: DebounceOptions): Function | 需设置合理等待时间验证异步行为 |
|
|
150
|
+
| _.throttle | _.throttle(func: Function, wait: number, options?: ThrottleOptions): Function | 需设置合理等待时间验证异步行为 |
|
|
151
|
+
|
|
152
|
+
> 注:`_.debounce` 和 `_.throttle` 涉及异步行为,可在 XTS 测试中通过设置合理的等待时间和调用次数进行验证,故列为"可测试"但需注明额外条件。
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 用例索引表
|
|
157
|
+
|
|
158
|
+
| 用例序号 | 用例名称 | 涉及接口 | 模块归属 |
|
|
159
|
+
|---------|---------|---------|---------|
|
|
160
|
+
| 001 | 数组分块基础功能验证 | _.chunk | 数组操作 |
|
|
161
|
+
| 002 | 数值范围限制功能验证 | _.clamp | 数值处理 |
|
|
162
|
+
| 003 | 对象浅拷贝功能验证 | _.clone | 对象拷贝 |
|
|
163
|
+
| 004 | 对象深拷贝功能验证 | _.cloneDeep | 对象拷贝 |
|
|
164
|
+
| 005 | 对象默认属性填充功能验证 | _.defaults | 对象操作 |
|
|
165
|
+
| 006 | 数组差异计算功能验证 | _.difference | 数组操作 |
|
|
166
|
+
| 007 | 对象属性路径访问与设置验证 | _.get, _.set | 对象属性访问 |
|
|
167
|
+
| 008 | 对象类型判断组合验证 | _.isPlainObject, _.isArray, _.isNumber | 类型判断 |
|
|
168
|
+
| 009 | 数组分块边界条件验证 | _.chunk | 数组操作 |
|
|
169
|
+
| 010 | 对象深拷贝嵌套结构验证 | _.cloneDeep | 对象拷贝 |
|
|
170
|
+
| 011 | 对象属性路径非法输入验证 | _.get, _.set | 对象属性访问 |
|
|
171
|
+
| 012 | 类型判断边界值验证 | _.isNumber | 类型判断 |
|
|
172
|
+
| 013 | 空值输入处理验证 | _.chunk, _.get, _.clone | 数组操作/对象属性访问/对象拷贝 |
|
|
173
|
+
| 014 | 异常参数与边界值输入验证 | _.chunk, _.clamp, _.difference | 数组操作/数值处理 |
|
|
174
|
+
| 015 | 大数据量输入处理验证 | _.chunk, _.difference, _.cloneDeep, _.get | 数组操作/对象拷贝/对象属性访问 |
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## XTS 用例详细描述
|
|
179
|
+
|
|
180
|
+
### 用例序号:001
|
|
181
|
+
|
|
182
|
+
**用例名称**:数组分块基础功能验证
|
|
183
|
+
|
|
184
|
+
**用例描述**:
|
|
185
|
+
验证 `_.chunk` 接口的基础分块功能是否正确实现。该用例通过传入不同长度和分块大小的数组,验证返回的分块结果是否符合预期,确保分块逻辑的正确性和准确性。测试覆盖常规数组分块、默认分块大小、自定义分块大小等场景。
|
|
186
|
+
|
|
187
|
+
**用例预期结果**:
|
|
188
|
+
1. 调用 `_.chunk([1, 2, 3, 4, 5], 2)` 后,返回值应为 `[[1, 2], [3, 4], [5]]`
|
|
189
|
+
2. 调用 `_.chunk([1, 2, 3], 1)` 后,返回值应为 `[[1], [2], [3]]`(默认 size=1)
|
|
190
|
+
3. 调用 `_.chunk([1, 2, 3, 4], 3)` 后,返回值应为 `[[1, 2, 3], [4]]`
|
|
191
|
+
4. 所有返回值均为 Array<Array> 类型
|
|
192
|
+
|
|
193
|
+
**对应的函数接口**:
|
|
194
|
+
- `_.chunk(array: Array, size?: number): Array<Array>`
|
|
195
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
196
|
+
- 在本用例中的作用:验证分块逻辑的正确性
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### 用例序号:002
|
|
201
|
+
|
|
202
|
+
**用例名称**:数值范围限制功能验证
|
|
203
|
+
|
|
204
|
+
**用例描述**:
|
|
205
|
+
验证 `_.clamp` 接口的数值范围限制功能是否正确实现。该用例通过传入不同位置的数值(在范围内、超出下限、超出上限),验证返回值是否被正确限制在 [lower, upper] 范围内,确保范围限制逻辑的正确性。
|
|
206
|
+
|
|
207
|
+
**用例预期结果**:
|
|
208
|
+
1. 调用 `_.clamp(10, 5, 15)` 后,返回值应为 `10`(在范围内,返回原值)
|
|
209
|
+
2. 调用 `_.clamp(3, 5, 15)` 后,返回值应为 `5`(超出下限,返回下限值)
|
|
210
|
+
3. 调用 `_.clamp(20, 5, 15)` 后,返回值应为 `15`(超出上限,返回上限值)
|
|
211
|
+
4. 调用 `_.clamp(-5, 0, 10)` 后,返回值应为 `0`(负值超出下限)
|
|
212
|
+
5. 所有返回值均为 number 类型
|
|
213
|
+
|
|
214
|
+
**对应的函数接口**:
|
|
215
|
+
- `_.clamp(number: number, lower: number, upper: number): number`
|
|
216
|
+
- 功能:将数值限制在 [lower, upper] 范围内
|
|
217
|
+
- 在本用例中的作用:验证范围限制逻辑的正确性
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### 用例序号:003
|
|
222
|
+
|
|
223
|
+
**用例名称**:对象浅拷贝功能验证
|
|
224
|
+
|
|
225
|
+
**用例描述**:
|
|
226
|
+
验证 `_.clone` 接口的浅拷贝功能是否正确实现。该用例通过传入不同类型的值(对象、数组、原始值),验证返回的拷贝值是否与原值相等但非同一引用,确保浅拷贝逻辑的正确性。特别验证浅拷贝特性:嵌套对象仍为同一引用。
|
|
227
|
+
|
|
228
|
+
**用例预期结果**:
|
|
229
|
+
1. 调用 `_.clone({ a: 1, b: 2 })` 后,返回值应与原对象结构相等:`{ a: 1, b: 2 }`
|
|
230
|
+
2. 返回对象与原对象非同一引用:`cloneObj !== originalObj` 应为 `true`
|
|
231
|
+
3. 调用 `_.clone([1, 2, 3])` 后,返回值应为 `[1, 2, 3]`
|
|
232
|
+
4. 返回数组与原数组非同一引用:`cloneArr !== originalArr` 应为 `true`
|
|
233
|
+
5. 浅拷贝特性验证:拷贝嵌套对象后,嵌套对象仍为同一引用
|
|
234
|
+
|
|
235
|
+
**对应的函数接口**:
|
|
236
|
+
- `_.clone(value: any): any`
|
|
237
|
+
- 功能:创建值的浅拷贝
|
|
238
|
+
- 在本用例中的作用:验证浅拷贝逻辑的正确性
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### 用例序号:004
|
|
243
|
+
|
|
244
|
+
**用例名称**:对象深拷贝功能验证
|
|
245
|
+
|
|
246
|
+
**用例描述**:
|
|
247
|
+
验证 `_.cloneDeep` 接口的深拷贝功能是否正确实现。该用例通过传入嵌套结构的对象,验证返回的拷贝值是否与原值结构完全相等,且所有嵌套层级均为新引用,确保深拷贝逻辑的正确性。与浅拷贝对比,验证深拷贝的核心特性:嵌套对象也为新引用。
|
|
248
|
+
|
|
249
|
+
**用例预期结果**:
|
|
250
|
+
1. 调用 `_.cloneDeep({ a: { b: { c: 1 } } })` 后,返回值应与原对象结构相等
|
|
251
|
+
2. 返回对象与原对象非同一引用:`cloneObj !== originalObj` 应为 `true`
|
|
252
|
+
3. 嵌套对象也为新引用:`cloneObj.a !== originalObj.a` 应为 `true`
|
|
253
|
+
4. 深层嵌套也为新引用:`cloneObj.a.b !== originalObj.a.b` 应为 `true`
|
|
254
|
+
5. 拷贝后修改嵌套对象不影响原对象:修改 cloneObj.a.b.c 后,originalObj.a.b.c 应保持原值
|
|
255
|
+
|
|
256
|
+
**对应的函数接口**:
|
|
257
|
+
- `_.cloneDeep(value: any): any`
|
|
258
|
+
- 功能:创建值的深拷贝
|
|
259
|
+
- 在本用例中的作用:验证深拷贝逻辑的正确性,特别是嵌套结构的独立拷贝特性
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
### 用例序号:005
|
|
264
|
+
|
|
265
|
+
**用例名称**:对象默认属性填充功能验证
|
|
266
|
+
|
|
267
|
+
**用例描述**:
|
|
268
|
+
验证 `_.defaults` 接口的属性填充功能是否正确实现。该用例通过传入目标对象和源对象,验证返回的对象中未定义属性是否被源对象的属性填充,已定义属性是否保持原值,确保属性填充逻辑的正确性。
|
|
269
|
+
|
|
270
|
+
**用例预期结果**:
|
|
271
|
+
1. 调用 `_.defaults({ a: 1 }, { a: 2, b: 2 })` 后,返回值应为 `{ a: 1, b: 2 }`(a 保持原值,b 被填充)
|
|
272
|
+
2. 调用 `_.defaults({}, { a: 1, b: 2 })` 后,返回值应为 `{ a: 1, b: 2 }`(空对象被完全填充)
|
|
273
|
+
3. 调用 `_.defaults({ a: undefined }, { a: 1 })` 后,返回值应为 `{ a: 1 }`(undefined 属性被填充)
|
|
274
|
+
4. 调用 `_.defaults({ a: null }, { a: 1 })` 后,返回值应为 `{ a: null }`(null 不视为未定义,保持原值)
|
|
275
|
+
5. 多源对象填充验证:`_.defaults({}, { a: 1 }, { b: 2 })` 应返回 `{ a: 1, b: 2 }`
|
|
276
|
+
|
|
277
|
+
**对应的函数接口**:
|
|
278
|
+
- `_.defaults(object: Object, ...sources: Object[]): Object`
|
|
279
|
+
- 功能:将 sources 的属性填充到 object 的未定义属性中
|
|
280
|
+
- 在本用例中的作用:验证属性填充逻辑的正确性
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
### 用例序号:006
|
|
285
|
+
|
|
286
|
+
**用例名称**:数组差异计算功能验证
|
|
287
|
+
|
|
288
|
+
**用例描述**:
|
|
289
|
+
验证 `_.difference` 接口的数组差异计算功能是否正确实现。该用例通过传入主数组和排除数组,验证返回的数组是否仅包含主数组中不存在于排除数组的元素,确保差异计算逻辑的正确性。
|
|
290
|
+
|
|
291
|
+
**用例预期结果**:
|
|
292
|
+
1. 调用 `_.difference([1, 2, 3, 4], [2, 4])` 后,返回值应为 `[1, 3]`
|
|
293
|
+
2. 调用 `_.difference([1, 2, 3], [])` 后,返回值应为 `[1, 2, 3]`(空排除数组)
|
|
294
|
+
3. 调用 `_.difference([], [1, 2, 3])` 后,返回值应为 `[]`(空主数组)
|
|
295
|
+
4. 调用 `_.difference([1, 2, 3], [1, 2, 3])` 后,返回值应为 `[]`(完全重叠)
|
|
296
|
+
5. 多排除数组验证:`_.difference([1, 2, 3, 4], [2], [4])` 应返回 `[1, 3]`
|
|
297
|
+
|
|
298
|
+
**对应的函数接口**:
|
|
299
|
+
- `_.difference(array: Array, ...values: Array[]): Array`
|
|
300
|
+
- 功能:返回 array 中不在 values 中的元素
|
|
301
|
+
- 在本用例中的作用:验证差异计算逻辑的正确性
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
### 用例序号:007
|
|
306
|
+
|
|
307
|
+
**用例名称**:对象属性路径访问与设置验证
|
|
308
|
+
|
|
309
|
+
**用例描述**:
|
|
310
|
+
验证 `_.get` 和 `_.set` 接口的属性路径访问与设置功能是否正确实现。该用例通过协同调用两个接口,先使用 `_.set` 设置嵌套属性,再使用 `_.get` 获取该属性,验证两个接口的协同工作是否正确,确保属性路径操作的一致性和准确性。
|
|
311
|
+
|
|
312
|
+
**用例预期结果**:
|
|
313
|
+
1. 调用 `_.set({}, 'a.b.c', 1)` 后,对象应变为 `{ a: { b: { c: 1 } } }`
|
|
314
|
+
2. 调用 `_.get({ a: { b: { c: 1 } } }, 'a.b.c')` 后,返回值应为 `1`
|
|
315
|
+
3. 协同验证:set 设置属性后,get 应能正确获取设置的值
|
|
316
|
+
4. 调用 `_.get({ a: { b: {} } }, 'a.b.c', 'default')` 后,返回值应为 `'default'`(路径不存在返回默认值)
|
|
317
|
+
5. 数组路径验证:`_.get({ a: [{ b: 1 }] }, ['a', 0, 'b'])` 应返回 `1`
|
|
318
|
+
|
|
319
|
+
**对应的函数接口**:
|
|
320
|
+
- `_.set(object: Object, path: string | Array<string>, value: any): Object`
|
|
321
|
+
- 功能:根据路径设置对象属性值
|
|
322
|
+
- 在本用例中的作用:作为流程第一步,设置嵌套属性值
|
|
323
|
+
- `_.get(object: Object, path: string | Array<string>, defaultValue?: any): any`
|
|
324
|
+
- 功能:根据路径获取对象属性值
|
|
325
|
+
- 在本用例中的作用:验证 _.set 设置的属性值是否正确
|
|
326
|
+
- 与其他接口的关联:与 _.set 协同验证属性路径操作的一致性
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
### 用例序号:008
|
|
331
|
+
|
|
332
|
+
**用例名称**:对象类型判断组合验证
|
|
333
|
+
|
|
334
|
+
**用例描述**:
|
|
335
|
+
验证 `_.isPlainObject`、`_.isArray`、`_.isNumber` 接口的类型判断功能是否正确实现。该用例通过协同调用三个接口,传入不同类型的值,验证每个接口的判断结果是否符合预期,确保类型判断逻辑的正确性和一致性。
|
|
336
|
+
|
|
337
|
+
**用例预期结果**:
|
|
338
|
+
1. 调用 `_.isPlainObject({ a: 1 })` 后,返回值应为 `true`
|
|
339
|
+
2. 调用 `_.isPlainObject([1, 2])` 后,返回值应为 `false`(数组非普通对象)
|
|
340
|
+
3. 调用 `_.isArray([1, 2, 3])` 后,返回值应为 `true`
|
|
341
|
+
4. 调用 `_.isArray({ length: 3 })` 后,返回值应为 `false`(类数组对象非真实数组)
|
|
342
|
+
5. 调用 `_.isNumber(123)` 后,返回值应为 `true`
|
|
343
|
+
6. 调用 `_.isNumber('123')` 后,返回值应为 `false`(字符串非数值)
|
|
344
|
+
7. 协同验证:对同一值 `{ a: 1 }`,`_.isPlainObject` 为 `true`,`_.isArray` 为 `false`,`_.isNumber` 为 `false`
|
|
345
|
+
|
|
346
|
+
**对应的函数接口**:
|
|
347
|
+
- `_.isPlainObject(value: any): boolean`
|
|
348
|
+
- 功能:检查 value 是否为普通对象
|
|
349
|
+
- 在本用例中的作用:验证普通对象判断的正确性
|
|
350
|
+
- `_.isArray(value: any): boolean`
|
|
351
|
+
- 功能:检查 value 是否为数组
|
|
352
|
+
- 在本用例中的作用:验证数组判断的正确性
|
|
353
|
+
- 与其他接口的关联:与 _.isPlainObject 对比验证类型判断的一致性
|
|
354
|
+
- `_.isNumber(value: any): boolean`
|
|
355
|
+
- 功能:检查 value 是否为数值
|
|
356
|
+
- 在本用例中的作用:验证数值判断的正确性
|
|
357
|
+
- 与其他接口的关联:与其他类型判断接口协同验证类型识别的准确性
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
### 用例序号:009
|
|
362
|
+
|
|
363
|
+
**用例名称**:数组分块边界条件验证
|
|
364
|
+
|
|
365
|
+
**用例描述**:
|
|
366
|
+
验证 `_.chunk` 接口在边界条件下的行为是否正确。该用例通过传入边界值(空数组、size 为 0、size 大于数组长度),验证返回值是否符合预期,确保边界条件处理的健壮性。
|
|
367
|
+
|
|
368
|
+
**用例预期结果**:
|
|
369
|
+
1. 调用 `_.chunk([], 2)` 后,返回值应为 `[]`(空数组)
|
|
370
|
+
2. 调用 `_.chunk([1, 2, 3], 0)` 后,返回值应为 `[]` 或抛出异常(根据库实现)
|
|
371
|
+
3. 调用 `_.chunk([1, 2], 5)` 后,返回值应为 `[[1, 2]]`(size 大于数组长度)
|
|
372
|
+
4. 调用 `_.chunk([1, 2, 3], -1)` 后,返回值应为 `[]` 或抛出异常(负值 size)
|
|
373
|
+
5. 所有返回值均为 Array<Array> 类型
|
|
374
|
+
|
|
375
|
+
**对应的函数接口**:
|
|
376
|
+
- `_.chunk(array: Array, size?: number): Array<Array>`
|
|
377
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
378
|
+
- 在本用例中的作用:验证边界条件处理的健壮性
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
### 用例序号:010
|
|
383
|
+
|
|
384
|
+
**用例名称**:对象深拷贝嵌套结构验证
|
|
385
|
+
|
|
386
|
+
**用例描述**:
|
|
387
|
+
验证 `_.cloneDeep` 接口对复杂嵌套结构的深拷贝能力。该用例通过传入多层嵌套、包含数组、包含函数引用的复杂对象,验证返回的拷贝值是否完整拷贝所有层级和结构,确保深拷贝对复杂结构的处理能力。
|
|
388
|
+
|
|
389
|
+
**用例预期结果**:
|
|
390
|
+
1. 调用 `_.cloneDeep({ a: [1, { b: 2 }], c: { d: { e: 3 } } })` 后,返回值应与原对象结构相等
|
|
391
|
+
2. 嵌套数组也为新引用:`cloneObj.a !== originalObj.a` 应为 `true`
|
|
392
|
+
3. 数组内的对象也为新引用:`cloneObj.a[1] !== originalObj.a[1]` 应为 `true`
|
|
393
|
+
4. 深层嵌套也为新引用:`cloneObj.c.d !== originalObj.c.d` 应为 `true`
|
|
394
|
+
5. 修改拷贝对象的任何层级不应影响原对象的对应层级
|
|
395
|
+
|
|
396
|
+
**对应的函数接口**:
|
|
397
|
+
- `_.cloneDeep(value: any): any`
|
|
398
|
+
- 功能:创建值的深拷贝
|
|
399
|
+
- 在本用例中的作用:验证对复杂嵌套结构的深拷贝能力
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
### 用例序号:011
|
|
404
|
+
|
|
405
|
+
**用例名称**:对象属性路径非法输入验证
|
|
406
|
+
|
|
407
|
+
**用例描述**:
|
|
408
|
+
验证 `_.get` 和 `_.set` 接口对非法输入的处理能力。该用例通过传入非法路径、空对象、null 值等边界条件,验证接口是否能正确处理或返回合理的默认值,确保接口的健壮性。
|
|
409
|
+
|
|
410
|
+
**用例预期结果**:
|
|
411
|
+
1. 调用 `_.get({}, '')` 后,返回值应为 `undefined`(空路径)
|
|
412
|
+
2. 调用 `_.get(null, 'a.b')` 后,返回值应为 `undefined`(null 对象)
|
|
413
|
+
3. 调用 `_.get({ a: 1 }, '...', 'default')` 后,返回值应为 `'default'`(非法路径)
|
|
414
|
+
4. 调用 `_.set(null, 'a.b', 1)` 后,不应抛出异常,应返回 `null` 或新对象(根据库实现)
|
|
415
|
+
5. 调用 `_.set({}, '', 1)` 后,不应抛出异常,应返回原对象或新对象(根据库实现)
|
|
416
|
+
|
|
417
|
+
**对应的函数接口**:
|
|
418
|
+
- `_.get(object: Object, path: string | Array<string>, defaultValue?: any): any`
|
|
419
|
+
- 功能:根据路径获取对象属性值
|
|
420
|
+
- 在本用例中的作用:验证对非法输入的处理能力
|
|
421
|
+
- `_.set(object: Object, path: string | Array<string>, value: any): Object`
|
|
422
|
+
- 功能:根据路径设置对象属性值
|
|
423
|
+
- 在本用例中的作用:验证对非法输入的处理能力
|
|
424
|
+
- 与其他接口的关联:与 _.get 协同验证边界条件的一致性
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
### 用例序号:012
|
|
429
|
+
|
|
430
|
+
**用例名称**:类型判断边界值验证
|
|
431
|
+
|
|
432
|
+
**用例描述**:
|
|
433
|
+
验证 `_.isNumber` 接口对数值边界值的判断能力。该用例通过传入各种数值类型(整数、浮点数、NaN、Infinity、负数),验证判断结果是否符合预期,确保类型判断的准确性和完整性。
|
|
434
|
+
|
|
435
|
+
**用例预期结果**:
|
|
436
|
+
1. 调用 `_.isNumber(0)` 后,返回值应为 `true`(零值)
|
|
437
|
+
2. 调用 `_.isNumber(-1)` 后,返回值应为 `true`(负数)
|
|
438
|
+
3. 调用 `_.isNumber(3.14)` 后,返回值应为 `true`(浮点数)
|
|
439
|
+
4. 调用 `_.isNumber(NaN)` 后,返回值应为 `true`(NaN 也视为数值类型)
|
|
440
|
+
5. 调用 `_.isNumber(Infinity)` 后,返回值应为 `true`(Infinity 也视为数值类型)
|
|
441
|
+
6. 调用 `_.isNumber(Number.MAX_VALUE)` 后,返回值应为 `true`(最大数值)
|
|
442
|
+
7. 调用 `_.isNumber(new Number(1))` 后,返回值应为 `false`(Number 对象非原始数值)
|
|
443
|
+
|
|
444
|
+
**对应的函数接口**:
|
|
445
|
+
- `_.isNumber(value: any): boolean`
|
|
446
|
+
- 功能:检查 value 是否为数值
|
|
447
|
+
- 在本用例中的作用:验证对数值边界值的判断能力
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
### 用例序号:013
|
|
452
|
+
|
|
453
|
+
**用例名称**:空值输入处理验证
|
|
454
|
+
|
|
455
|
+
**用例描述**:
|
|
456
|
+
验证 `_.chunk`、`_.get`、`_.clone` 接口对空值输入的处理能力。该用例通过传入 `null`、`undefined`、空数组、空对象等空值,验证接口是否能正确处理空值输入并返回安全的默认值,确保接口的健壮性和空值处理机制的正确性。不应因空值输入导致崩溃或产生不可预期行为。
|
|
457
|
+
|
|
458
|
+
**用例预期结果**:
|
|
459
|
+
1. 调用 `_.chunk(null, 2)` 后,应返回 `[]` 或抛出异常(null 数组输入处理)
|
|
460
|
+
2. 调用 `_.chunk(undefined, 2)` 后,应返回 `[]` 或抛出异常(undefined 数组输入处理)
|
|
461
|
+
3. 调用 `_.chunk([], 2)` 后,返回值应为 `[]`(空数组安全处理)
|
|
462
|
+
4. 调用 `_.get(null, 'a.b')` 后,返回值应为 `undefined`(null 对象安全返回 undefined)
|
|
463
|
+
5. 调用 `_.get({}, 'a.b')` 后,返回值应为 `undefined`(空对象路径不存在)
|
|
464
|
+
6. 调用 `_.clone(null)` 后,返回值应为 `null`(null 输入返回 null)
|
|
465
|
+
7. 所有空值输入不应导致崩溃或不可预期行为
|
|
466
|
+
|
|
467
|
+
**对应的函数接口**:
|
|
468
|
+
- `_.chunk(array: Array, size?: number): Array<Array>`
|
|
469
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
470
|
+
- 在本用例中的作用:验证对 null/undefined/空数组 输入的处理能力
|
|
471
|
+
- `_.get(object: Object, path: string | Array<string>, defaultValue?: any): any`
|
|
472
|
+
- 功能:根据路径获取对象属性值
|
|
473
|
+
- 在本用例中的作用:验证对 null/空对象 输入的处理能力
|
|
474
|
+
- `_.clone(value: any): any`
|
|
475
|
+
- 功能:创建值的浅拷贝
|
|
476
|
+
- 在本用例中的作用:验证对 null 输入的处理能力
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
### 用例序号:014
|
|
481
|
+
|
|
482
|
+
**用例名称**:异常参数与边界值输入验证
|
|
483
|
+
|
|
484
|
+
**用例描述**:
|
|
485
|
+
验证 `_.chunk`、`_.clamp`、`_.difference` 接口对异常参数和边界值的处理能力。该用例通过传入类型不匹配参数、负值、零值、NaN、Infinity 等异常和边界输入,验证接口是否能正确处理或抛出预期异常,确保接口在各种极端输入下的健壮性。
|
|
486
|
+
|
|
487
|
+
**用例预期结果**:
|
|
488
|
+
1. 调用 `_.chunk([1, 2, 3], -1)` 后,应返回 `[]` 或抛出异常(负值 size)
|
|
489
|
+
2. 调用 `_.chunk([1, 2, 3], 0)` 后,应返回 `[]` 或抛出异常(零值 size)
|
|
490
|
+
3. 调用 `_.chunk([1, 2, 3], NaN)` 后,应返回 `[]` 或抛出异常(NaN size)
|
|
491
|
+
4. 调用 `_.chunk([1, 2, 3], Infinity)` 后,应返回 `[[1, 2, 3]]` 或抛出异常(Infinity size)
|
|
492
|
+
5. 调用 `_.clamp(NaN, 0, 10)` 后,应返回 `NaN` 或合理处理(NaN 输入处理)
|
|
493
|
+
6. 调用 `_.clamp(5, 10, 1)` 后,应合理处理 lower > upper 的冲突情况
|
|
494
|
+
7. 调用 `_.difference([1, 2, 3], null)` 后,应返回 `[1, 2, 3]` 或抛出异常(null 排除数组)
|
|
495
|
+
8. 所有异常处理不应导致崩溃,异常信息应明确可定位
|
|
496
|
+
|
|
497
|
+
**对应的函数接口**:
|
|
498
|
+
- `_.chunk(array: Array, size?: number): Array<Array>`
|
|
499
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
500
|
+
- 在本用例中的作用:验证对负值、零值、NaN、Infinity 等异常 size 的处理
|
|
501
|
+
- `_.clamp(number: number, lower: number, upper: number): number`
|
|
502
|
+
- 功能:将数值限制在范围内
|
|
503
|
+
- 在本用例中的作用:验证对 NaN 输入和 lower > upper 冲突的处理
|
|
504
|
+
- `_.difference(array: Array, ...values: Array[]): Array`
|
|
505
|
+
- 功能:返回数组差异
|
|
506
|
+
- 在本用例中的作用:验证对 null 排除数组的处理
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
### 用例序号:015
|
|
511
|
+
|
|
512
|
+
**用例名称**:大数据量输入处理验证
|
|
513
|
+
|
|
514
|
+
**用例描述**:
|
|
515
|
+
验证 `_.chunk`、`_.difference`、`_.cloneDeep`、`_.get` 接口在大数据量输入下的处理能力和性能表现。该用例通过传入大数组(10000+ 元素)、深度嵌套对象(10+ 层)、大量属性对象(1000+ 属性),验证接口在大数据量场景下是否能正确处理且不发生内存溢出、栈溢出或超时,确保接口的数据处理能力和稳定性。
|
|
516
|
+
|
|
517
|
+
**用例预期结果**:
|
|
518
|
+
1. 调用 `_.chunk(largeArray_10000, 100)` 后,应正确返回 100 个分块且不发生内存溢出
|
|
519
|
+
2. 调用 `_.difference(largeArray_10000, excludeArray_5000)` 后,应正确计算差异且在 5 秒内完成
|
|
520
|
+
3. 调用 `_.cloneDeep(deepNestedObj_10_levels)` 后,应完整拷贝所有层级且不发生栈溢出
|
|
521
|
+
4. 调用 `_.get(wideObj_1000_props, 'key_500')` 后,应正确获取属性值且在合理时间内完成
|
|
522
|
+
5. 调用 `_.clone(largeArray_10000)` 后,应正确浅拷贝且内存使用合理
|
|
523
|
+
6. 所有大数据量操作不应导致应用崩溃或系统资源耗尽
|
|
524
|
+
|
|
525
|
+
**对应的函数接口**:
|
|
526
|
+
- `_.chunk(array: Array, size?: number): Array<Array>`
|
|
527
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
528
|
+
- 在本用例中的作用:验证大数组分块处理的正确性和性能
|
|
529
|
+
- `_.difference(array: Array, ...values: Array[]): Array`
|
|
530
|
+
- 功能:返回数组差异
|
|
531
|
+
- 在本用例中的作用:验证大数据量差异计算的正确性和性能
|
|
532
|
+
- `_.cloneDeep(value: any): any`
|
|
533
|
+
- 功能:创建值的深拷贝
|
|
534
|
+
- 在本用例中的作用:验证深度嵌套结构深拷贝的正确性和稳定性
|
|
535
|
+
- `_.get(object: Object, path: string, defaultValue?: any): any`
|
|
536
|
+
- 功能:根据路径获取对象属性值
|
|
537
|
+
- 在本用例中的作用:验证大量属性对象的路径访问性能
|
|
538
|
+
- `_.clone(value: any): any`
|
|
539
|
+
- 功能:创建值的浅拷贝
|
|
540
|
+
- 在本用例中的作用:验证大数组浅拷贝的正确性和性能
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## 附录:测试实施建议
|
|
545
|
+
|
|
546
|
+
### 测试框架建议
|
|
547
|
+
- 使用 OpenHarmony XTS 测试框架(`@ohos/hypium`)
|
|
548
|
+
- 测试文件命名:`lodashXtsTest.ts`
|
|
549
|
+
- 测试类命名:`LodashXtsTest`
|
|
550
|
+
|
|
551
|
+
### 测试代码结构建议
|
|
552
|
+
```typescript
|
|
553
|
+
import { describe, it, expect } from '@ohos/hypium';
|
|
554
|
+
import _ from '@ohos/lodash';
|
|
555
|
+
|
|
556
|
+
export default function lodashXtsTest() {
|
|
557
|
+
describe('LodashXtsTest', () => {
|
|
558
|
+
// 用例 001:数组分块基础功能验证
|
|
559
|
+
it('chunk_basic_001', () => {
|
|
560
|
+
const result = _.chunk([1, 2, 3, 4, 5], 2);
|
|
561
|
+
expect(result).toEqual([[1, 2], [3, 4], [5]]);
|
|
562
|
+
});
|
|
563
|
+
|
|
564
|
+
// 更多用例...
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
### Mock 建议
|
|
570
|
+
- 本库接口均为纯函数,无需 Mock 外部依赖
|
|
571
|
+
- 异步接口(`_.debounce`、`_.throttle`)需在测试中设置合理的等待时间(建议 100ms 以上)
|
|
572
|
+
|
|
573
|
+
### 测试覆盖率目标
|
|
574
|
+
- 功能覆盖率:≥ 90%(覆盖所有可测试接口)
|
|
575
|
+
- 用例覆盖率:≥ 80%(每个接口至少包含正向和反向用例)
|
|
576
|
+
```
|