[英]bUnit can not find element that matches given selecter
使用 .net 6、bUnit 1.13.5 Mudblazor 6.0.17
我正在嘗試為對話框中的剃刀組件編寫單元測試,但 bUnit 無法在其中找到任何組件或類/id。 我收到以下錯誤...
消息:Bunit.ElementNotFoundException:找不到與選擇器“#CancelButton”匹配的元素
在 ColumnTrackerEditDialog.razor 中有以下行
<MudButton id="CancelButton" OnClick="@Cancel">Cancel</MudButton>
這應該始終呈現,而不是在任何條件語句下。 對此的單元測試如下(到目前為止)
[Test]
public async Task ColumnTrackerEditDialogUITest_CancelButton()
{
var item = GetColumnTrackerPeco();
PopulateData(item);
var page = TestContext!.RenderComponent<ColumnTrackerEditDialog>(parameters =>
parameters.Add(p => p.Item, item));
Assert.IsNotNull(page);
var cancelButton = page.Find("#CancelButton");
Assert.IsNotNull(cancelButton);
cancelButton.Click();
}
測試設置很好,因為頁面不為空,並且在非對話框頁面上我可以通過 id、類或組件找到元素。
這是一個問題,因為它是一個對話還是我錯過了其他東西?
我試圖在組件中找到“按鈕”、“.mud-button”和其他類,以及 .FindComponent 和其他標簽,但沒有找到任何東西。
組件是否被異步添加? 如果是這種情況,請嘗試改用cut.WaitForElement("#CancelButton")
。
另一種方法是將 MudBlazor 組件存根,這樣它就不會直接影響您的測試,而是找到存根並斷言您已將預期參數傳遞給它。 在此處了解更多信息: https ://bunit.dev/docs/providing-input/substituting-components
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.