簡體   English   中英

bUnit 找不到與給定選擇器匹配的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM