日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Hello Blazor:(15)使用bUnit进行单元测试

發(fā)布時間:2023/12/4 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hello Blazor:(15)使用bUnit进行单元测试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

bUnit介紹

bUnit是Blazor組件測試庫。其目標是使編寫全面、穩(wěn)定的單位測試變得容易。有了bUnit,你可以:

  • 使用C#或Razor語法設(shè)置和定義測試下的組件

  • 使用語義HTML比較器驗證結(jié)果

  • 與組件以及觸發(fā)事件處理程序進行交互和檢查

  • 傳遞參數(shù)、級聯(lián)值并將服務(wù)注入測試組件

  • 模擬IJSRuntime,認證和授權(quán)等

bUnit是建立在現(xiàn)有單元測試框架(如xUnit、NUnit和MSTest)基礎(chǔ)上的,這些框架以與任何正常單元測試相同的方式運行Blazor組件測試。與通常需要幾秒鐘才能運行的基于瀏覽器的UI測試相比,bUnit在毫秒內(nèi)運行測試。

基本使用

創(chuàng)建一個Blazor WebAssembly 項目,然后添加一個xUnit測試項目。

在測試項目中引用Nuget包bUnit。

首先,讓測試類繼承TestContext,然后編寫測試用例:

public?class?UnitTest1?:?TestContext {[Fact]public?void?Test1(){var?cut?=?RenderComponent<Counter>();cut.Find("button").Click();cut.Find("p").MarkupMatches("<p>Current?count:?1</p>");} }

此測試用例通過RenderComponent方法呈現(xiàn)Counter組件,然后找到組件呈現(xiàn)的按鈕并執(zhí)行按鈕的Click方法,最后,驗證p元素是否與預(yù)期標記匹配。

模擬IJSRuntime

Blazor組件通常需要調(diào)用JavaScript,而在單元測試中,我們并不會運行JavaScript,因此bUnit需要模擬IJSRuntime。

假設(shè)組件代碼如下:

@inject?IJSRuntime?JSRuntime <button?@onclick=ButtonClicked>Click</button> @code {private?async?Task?ButtonClicked(){await?JSRuntime.InvokeVoidAsync("alert",?"My?IO");} }

然后編寫測試用例:

[Fact] public?void?Test1() {var?cut?=?RenderComponent<WebApplication20.Pages.Index>();JSInterop.SetupVoid("alert",?"My?IO");cut.Find("button").Click(); }

和普通測試用例唯一的不同,我們驗證了IJSRuntime會調(diào)用alert方法并傳入指定參數(shù):

JSInterop.SetupVoid("alert",?"My?IO");

結(jié)論

使用bUnit,我們無需啟動Blazor應(yīng)用,即可進行組件測試。

總結(jié)

以上是生活随笔為你收集整理的Hello Blazor:(15)使用bUnit进行单元测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。