SuperAPI AI 工具集

dotnet-blazor-testing

测试与质量

查看项目

更新于 10-16 02:32

技能介绍

用途:使用 bUnit 对 Blazor 组件进行内存内测试,无需浏览器即可渲染组件并断言输出,适用于 Blazor Server 与 Blazor WebAssembly 组件。

主要能力:组件渲染与标记断言(MarkupMatches、Find、FindAll、TextContent、ClassList);子内容与 RenderFragment 渲染;依赖注入服务注册与模拟;事件处理与用户交互模拟(Click、Input、Change、Submit);EventCallback 参数验证;级联参数与命名级联值;JavaScript 互操作模拟(SetupVoid、Setup<T>、VerifyInvoke、Loose 模式);异步生命周期测试(WaitForState、WaitForAssertion、加载与错误状态)。

使用方式:测试项目需先通过 dotnet-add-testing 技能搭建并引用 bUnit 包:<PackageReference Include="bunit" Version="1.*" />。测试类继承 TestContext 或以组合方式使用。渲染前须在 Services 中注册组件注入的所有依赖,否则渲染时抛错。异步操作后使用 cut.WaitForState() 等待重渲染,不要用 Task.Delay。JS 互操作默认严格模式,未设置的调用会抛异常,可显式设置或切换 JSRuntimeMode.Loose。

适用场景:组件逻辑与渲染输出的单元级验证,快速且确定性高。

限制:不覆盖浏览器端 E2E 测试(见 dotnet-playwright);共享 UI 测试模式(页面对象模型、选择器、等待策略)见 dotnet-ui-testing-core;测试项目脚手架见 dotnet-add-testing。不要用 cut.Instance 访问私有成员,不要在同一测试类中混用 bUnit 与 Playwright。缺少级联值可能导致渲染时 NullReferenceException。具体版本兼容性与最新 API 细节以官方文档为准。