用途:使用 bUnit 对 Blazor 组件做单元级测试。bUnit 提供内存中的 Blazor 渲染器,无需浏览器即可执行组件,适用于 Blazor Server 与 Blazor WebAssembly 组件。
主要能力:组件渲染与标记断言;子内容与 RenderFragment 渲染;依赖注入并在渲染前注册模拟服务;点击、输入、表单提交等事件处理测试;EventCallback 参数测试;级联参数与具名级联值;JavaScript 互操作模拟(含返回值与 loose 模式);异步组件生命周期测试,含加载态与错误态。
用法要点:测试类继承 TestContext 或组合使用;引用包 <PackageReference Include="bunit" Version="1.*" />;渲染前用 Services 注册组件注入的依赖;异步用 cut.WaitForState(),不要用 Task.Delay;JS 互操作用 JSInterop.SetupVoid / Setup 并 VerifyInvoke,或设置 JSInterop.Mode = JSRuntimeMode.Loose。断言渲染输出而非组件内部私有成员。
限制与前置:需已通过 dotnet-add-testing 搭建并引用 bUnit 的测试项目,被测组件须位于被引用的 Blazor 项目。基线为 .NET 8.0+、bUnit 1.x。浏览器端 E2E 由 dotnet-playwright 负责,共享 UI 测试模式见 dotnet-ui-testing-core;不要在同一个测试类中混用 bUnit 与 Playwright。未提供具体安装命令与收费标准信息。