如何使用bUnit测试Blazor中JSRuntime方法是否已执行?
用bUnit验证InvokeVoidAsync()的调用情况
要验证InvokeVoidAsync()是否被调用,可借助bUnit提供的MockJSRuntime模拟IJSRuntime,按以下步骤实现:
- 注入模拟的IJSRuntime
渲染组件时,将MockJSRuntime实例注入到组件的IJSRuntime依赖中:
var mockJSRuntime = new MockJSRuntime(); var cut = RenderComponent<你的组件类>(parameters => parameters .Add(p => p.JSRuntime, mockJSRuntime));
- 触发按钮点击事件
执行你已有的按钮点击逻辑:
var cancelButton = cut.Find("#cancel"); cancelButton.Click();
- 验证InvokeVoidAsync调用
通过MockJSRuntime的VerifyInvokeVoidAsync方法验证目标JS函数的调用情况:
// 验证指定JS函数被调用一次 mockJSRuntime.VerifyInvokeVoidAsync("你调用的JS函数名", Times.Once()); // 若需验证调用参数,可添加参数匹配逻辑 mockJSRuntime.VerifyInvokeVoidAsync("你调用的JS函数名", args => args[0].ToString() == "预期参数值", Times.Once());
关键说明
MockJSRuntime是bUnit专为模拟IJSRuntime设计的工具类,可精准追踪JS交互调用- 需将代码中的
你的组件类和你调用的JS函数名替换为实际的组件类型和JS函数名称 - 参数匹配逻辑可根据实际传递的参数调整,保证验证的准确性
内容的提问来源于stack exchange,提问作者Ayushi Amin
相关产品推荐
相关产品推荐

