NextUI 测试总结
测试概览
本次为布局密度功能创建了完整的测试覆盖,包括 C# 单元测试和 JavaScript 测试。
测试统计
C# 测试
- 项目:
src/NextUI.Core.Tests/ - 框架: xUnit
- 测试数量: 45 个
- 通过率: 100% ✅
- 运行时间: ~24ms
JavaScript 测试
- 项目:
tests/js/ - 框架: Vitest
- 测试数量: 19 个
- 通过率: 100% ✅
- 运行时间: ~6ms
总计
- 总测试数: 64 个
- 总通过率: 100% ✅
测试覆盖详情
ThemeState 测试 (C#)
新增测试(布局密度功能)
DensityScale_Default_IsOne- 默认密度值SetDensityScale_ValidValue_UpdatesProperty- 设置有效值SetDensityScale_BelowMinimum_ClampsToMinimum- 最小值限制SetDensityScale_AboveMaximum_ClampsToMaximum- 最大值限制SetDensityScale_TriggersChangedEvent- 事件触发SetDensityScale_PresetValues_WorkCorrectly- 预设值测试SetDensityScale_AndFontScale_AreIndependent- 独立性测试
新增测试(字体缩放功能)
FontScale_Default_IsOne- 默认字体缩放SetFontScale_ValidValue_UpdatesProperty- 设置有效值SetFontScale_BelowMinimum_ClampsToMinimum- 最小值限制SetFontScale_AboveMaximum_ClampsToMaximum- 最大值限制SetFontScale_TriggersChangedEvent- 事件触发
CSS 变量测试 (C#)
新增测试(布局密度相关)
CssFile_ContainsDensityScaleVariable- 密度变量存在CssFile_DensityScaleHasValidDefaultValue- 默认值验证CssFile_ContainsBaseSpacingVariables- 基础间距变量CssFile_SpacingVariablesUseCalcWithDensityScale- 间距使用 calcCssFile_ContainsSemanticSpacingVariables- 语义化间距变量CssFile_SemanticSpacingVariablesReferenceBaseSpacing- 语义化变量引用CssFile_ControlHeightsUsePartialDensityScaling- 控件高度部分缩放CssFile_ContainsControlHeightBaseVariables- 控件高度基础变量CssFile_RadiusVariablesNotAffectedByDensity- 圆角不受密度影响
ThemeRuntime 测试 (JavaScript)
密度功能测试
setDensityScale- 5 个测试- 设置有效值
- 最小值限制
- 最大值限制
- 不保存到 localStorage
- 边界值处理
getDensityScale- 4 个测试- 返回默认值
- 从 localStorage 读取
- 数值解析
- 无效值处理
setDensityPreset- 8 个测试- 所有预设值(extra-tight, compact, comfortable, spacious, extra-spacious)
- 大小写不敏感
- 未知预设处理
- 不保存选项
集成测试 - 2 个测试
- 与其他设置的独立性
- 持久化测试
测试文件清单
C# 测试文件
src/NextUI.Core.Tests/ThemeStateTests.cs- ThemeState 单元测试src/NextUI.Core.Tests/CssTokensTests.cs- CSS 变量验证测试
JavaScript 测试文件
tests/js/theme-runtime.test.mjs- ThemeRuntime 测试(Vitest)tests/js/theme-runtime.jest.test.mjs- ThemeRuntime 测试(Jest,备用)tests/js/setup.mjs- 测试环境设置tests/js/vitest.config.mjs- Vitest 配置tests/js/package.json- 项目配置tests/js/run-tests.sh- 测试运行脚本
文档文件
docs/TESTING.md- 测试指南docs/TESTING_SUMMARY.md- 本文件
运行测试
C# 测试
dotnet test src/NextUI.Core.Tests/NextUI.Core.Tests.csproj
JavaScript 测试
cd tests/js
./run-tests.sh
测试环境要求
- .NET SDK: 10.0+
- Node.js: >= 18.0.0 (推荐使用 nvm 管理)
- npm: 随 Node.js 安装
持续集成建议
建议在 CI/CD 流程中:
- 运行所有 C# 测试
- 运行所有 JavaScript 测试
- 确保所有测试通过
- 生成覆盖率报告(可选)
测试维护
- 新增功能时,应同步添加相应的测试用例
- CSS 变量变更时,应更新
CssTokensTests.cs - JavaScript 运行时变更时,应更新
theme-runtime.test.mjs - 定期运行测试,确保代码质量