日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET测试用例写的好不好?让变种来测试一下!

發布時間:2023/12/4 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET测试用例写的好不好?让变种来测试一下! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了保證代碼能夠正常工作,我們常常編寫了大量單元測試,并且代碼覆蓋率也做到了100%。但是在生產環境運行時還是會出問題!為什么??

這是因為你沒有進行變異測試!

變異測試

變異測試就是把bug(變種mutant)自動加入到你的代碼中。然后針對每個變種進行測試。測試應該失敗,如果測試通過——變種存活下來了,這就意味著測試代碼存在問題。?

Stryker.NET

使用Stryker.NET可以為我們的.NET Core和.NET Framework項目提供變異測試。

Stryker.NET支持多個變種,例如算術運算符、邏輯運算符,甚至LINQ表達式等。你可以在文檔中查看可用變種的完整列表https://stryker-mutator.io/docs/stryker-net/Mutators。

執行下面命令安裝Stryker.NET:

dotnet?tool?install?dotnet-stryker?--global

下面,我們GitHub Trending上排名較高的dotnet-architecture/eShopOnContainers(https://github.com/dotnet-architecture/eShopOnContainers)來演示Stryker.NET如何工作。?

eShopOnContainers包含了大量業務代碼和單元測試。我們重點測試Catalog.UnitTests。

功能一瞥

命令行進入Catalog.UnitTests所在目錄后,執行下列命令:

dotnet?stryker

等待一段時間后,會提示運行完成,測試結果輸出到了一個Html文件。

打開報告,我們可以看到,總體得分1.67,共引入了682個變種,只有11個被殺死,還有8個存活。(測試用例質量不行啊,撇嘴)?

讓我們看看CatalogController.cs中存活的一個變種:

可以看到,Stryker.NET使用了相等變種,將“==”改為“!=”。結果告訴我們,沒有任何測試可以檢測到這種變化。

結論

變異測試就是對測試結果進行檢測,以盡量減少測試用例編寫不完善的機會。

那些不能被殺死的變種,終將使你的代碼更強壯!

如果你覺得這篇文章對你有所啟發,請關注我的個人公眾號”My IO“,記住我!

總結

以上是生活随笔為你收集整理的.NET测试用例写的好不好?让变种来测试一下!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。