我对Blazor、AntBlazor和bUnit相当陌生。
当我的测试执行时,我得到以下错误:
对象引用未设置为对象的实例。在AntDesign.Aler.OnAfterRenderAsync(布尔firstRender(
我试图测试的组件正在使用AntBlazor Alert组件。
<Alert Type="@AlertType.Error" Message="Error text" Closable class="mb-3" />
当它需要显示时,它会抛出异常,但当它不需要显示时则测试通过。
我确实用TestContext 注册了AntDesign服务
TestContext.Services.AddAntDesign();
如有任何建议,我们将不胜感激。
我自己不是AntBlazor的专家或用户,所以这只是我在浏览他们的代码时发现的。
注册服务似乎还不够。您看到错误是因为这条线取自Alert.razar.cs:
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (firstRender)
{
HtmlElement element = await JsInvokeAsync<HtmlElement>(JSInteropConstants.GetDomInfo, Ref);
_height = element.ClientHeight;
}
}
JsInvoke将返回一个null
元素,从而返回element.ClientHeight
。将产生CCD_ 3。AntBlazor提供了一个您应该继承的AntDesignTestContext
。有了这些,它应该会起作用。