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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)

發布時間:2023/12/19 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???? 做過單元測試的同學大概都知道以上幾種測試框架,但我一直很好奇它們到底有什么不同,然后搜到了一篇不錯的文章清楚地解釋了這幾種框架的最大不同之處。

???? 地址在這里:http://www.tuicool.com/articles/F3eEn2j

???? 簡而言之,三者是非常相似的,如下所示:

1 [TestCase(1)] 2 [TestCase(2)] 3 [TestCase(3)] 4 [TestCase(4)] 5 public void FireMultipleTimes(int fireCount) 6 { 7 Bug bug = new Bug(); 8 Raygun gun = new Raygun(); 9 10 for(int i = 0; i < fireCount; i++) 11 { 12 gun.FireAt(bug); 13 } 14 15 if (fireCount >= 3) 16 { 17 Assert.IsFalse(gun.HasAmmo()); 18 } 19 else 20 { 21 Assert.IsTrue(gun.HasAmmo()); 22 } 23 }

???? 上面是NUnit的,XNunit也有類似的方法。這篇文章非常適合剛入門單元測試的同學看。

???? 不過包括Abp在內的開源框架用的都是XUnit或NUnit。

???? 在網上調查了一下,關于MSTest的負面評論還是比較多的,最主要的問題就在于MSTest的彈性不夠好,它無法在非微軟的平臺上運行單元測試,不過在 .Net Core日漸成熟的今天,我覺得現在已經不是問題了。如下MSTest的測試代碼:

1 [TestClass] 2 public class UnitTest1 3 { 4 [DataTestMethod] 5 [DataRow(1, 2, 2)] 6 [DataRow(2, 3, 5)] 7 [DataRow(3, 5, 8)] 8 public void AdditionTest(int a, int b, int result) 9 { 10 Assert.AreEqual(result, a + b); 11 } 12 }

???? 現在來看,幾乎這些框架都沒差了,在StackOverflow看到一條我很贊同的看法:

???? 其實不用顧慮那么多,隨便選擇吧,MSTest對Vs的集成是最好的,而且也很容易上手,如果哪一天碰到它所無法解決的事情,切換到其他框架也非常簡單,僅僅只是Nuget下個包,換下特性而已。

?

轉載鏈接:https://www.cnblogs.com/RobotZero/p/6732728.html

轉載于:https://www.cnblogs.com/supersnowyao/p/8478186.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)的全部內容,希望文章能夠幫你解決所遇到的問題。

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