You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用bUnit测试Blazor中JSRuntime方法是否已执行?

用bUnit验证InvokeVoidAsync()的调用情况

要验证InvokeVoidAsync()是否被调用,可借助bUnit提供的MockJSRuntime模拟IJSRuntime,按以下步骤实现:

  1. 注入模拟的IJSRuntime
    渲染组件时,将MockJSRuntime实例注入到组件的IJSRuntime依赖中:
var mockJSRuntime = new MockJSRuntime();
var cut = RenderComponent<你的组件类>(parameters => parameters
    .Add(p => p.JSRuntime, mockJSRuntime));
  1. 触发按钮点击事件
    执行你已有的按钮点击逻辑:
var cancelButton = cut.Find("#cancel");
cancelButton.Click();
  1. 验证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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 14:56:02