NextUI 测试总结

测试概览

本次为布局密度功能创建了完整的测试覆盖,包括 C# 单元测试和 JavaScript 测试。

测试统计

C# 测试

  • 项目: src/NextUI.Core.Tests/
  • 框架: xUnit
  • 测试数量: 45 个
  • 通过率: 100% ✅
  • 运行时间: ~24ms

JavaScript 测试

  • 项目: tests/js/
  • 框架: Vitest
  • 测试数量: 19 个
  • 通过率: 100% ✅
  • 运行时间: ~6ms

总计

  • 总测试数: 64 个
  • 总通过率: 100% ✅

测试覆盖详情

ThemeState 测试 (C#)

新增测试(布局密度功能)

  1. DensityScale_Default_IsOne - 默认密度值
  2. SetDensityScale_ValidValue_UpdatesProperty - 设置有效值
  3. SetDensityScale_BelowMinimum_ClampsToMinimum - 最小值限制
  4. SetDensityScale_AboveMaximum_ClampsToMaximum - 最大值限制
  5. SetDensityScale_TriggersChangedEvent - 事件触发
  6. SetDensityScale_PresetValues_WorkCorrectly - 预设值测试
  7. SetDensityScale_AndFontScale_AreIndependent - 独立性测试

新增测试(字体缩放功能)

  1. FontScale_Default_IsOne - 默认字体缩放
  2. SetFontScale_ValidValue_UpdatesProperty - 设置有效值
  3. SetFontScale_BelowMinimum_ClampsToMinimum - 最小值限制
  4. SetFontScale_AboveMaximum_ClampsToMaximum - 最大值限制
  5. SetFontScale_TriggersChangedEvent - 事件触发

CSS 变量测试 (C#)

新增测试(布局密度相关)

  1. CssFile_ContainsDensityScaleVariable - 密度变量存在
  2. CssFile_DensityScaleHasValidDefaultValue - 默认值验证
  3. CssFile_ContainsBaseSpacingVariables - 基础间距变量
  4. CssFile_SpacingVariablesUseCalcWithDensityScale - 间距使用 calc
  5. CssFile_ContainsSemanticSpacingVariables - 语义化间距变量
  6. CssFile_SemanticSpacingVariablesReferenceBaseSpacing - 语义化变量引用
  7. CssFile_ControlHeightsUsePartialDensityScaling - 控件高度部分缩放
  8. CssFile_ContainsControlHeightBaseVariables - 控件高度基础变量
  9. CssFile_RadiusVariablesNotAffectedByDensity - 圆角不受密度影响

ThemeRuntime 测试 (JavaScript)

密度功能测试

  1. setDensityScale - 5 个测试

    • 设置有效值
    • 最小值限制
    • 最大值限制
    • 不保存到 localStorage
    • 边界值处理
  2. getDensityScale - 4 个测试

    • 返回默认值
    • 从 localStorage 读取
    • 数值解析
    • 无效值处理
  3. setDensityPreset - 8 个测试

    • 所有预设值(extra-tight, compact, comfortable, spacious, extra-spacious)
    • 大小写不敏感
    • 未知预设处理
    • 不保存选项
  4. 集成测试 - 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 流程中:

  1. 运行所有 C# 测试
  2. 运行所有 JavaScript 测试
  3. 确保所有测试通过
  4. 生成覆盖率报告(可选)

测试维护

  • 新增功能时,应同步添加相应的测试用例
  • CSS 变量变更时,应更新 CssTokensTests.cs
  • JavaScript 运行时变更时,应更新 theme-runtime.test.mjs
  • 定期运行测试,确保代码质量