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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

读书笔记-单元测试艺术(二)-单元测试框架

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 读书笔记-单元测试艺术(二)-单元测试框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、說明

本次筆記所有的代碼是在VS2013下運行的,使用的nunit.framework.dll版本為3.2.1.0,Reshaper版本為8.2.3

1.xUnit測試框架

大部分單元測試框架的名字中,開頭通常是一個字母(代表實現它們的編程語言),如針對Java的JUnit

二、一個完整的例子

1.程序結構

2.編寫LogAnalyzer.cs

namespace LogAn {public class LogAnalyzer{public bool IsValidLogFileName(string fileName){if (!fileName.EndsWith(".SLF")){return false;}else{return true;}}} }

3.編寫LogAnalyzerTest.cs

說明:

[TestFixture]加在一個類上,標識這個類是一個包含自動化NUnit測試的類

[Test]加在一個方法上,標識這個方法是一個需要調用的自動化測試

測試方法的命名規范,一般包含三個部分:[被測方法]_[場景]_[預期行為]

注意:

NUnit測試方法的返回類型必須是void類型,并且不接受任何參數

namespace Manulife.LogAn.UnitTests {[TestFixture]public class LogAnalyzerTests{[Test]public void IsValidFileName_validFile_ReturnTrue(){//arrange(配置)LogAnalyzer analyzer = new LogAnalyzer();//act(操控)bool result = analyzer.IsValidLogFileName("whatever.slf");//assert(斷言)Assert.IsTrue(result, "filename should be valid!");}} }

4.運行所有測試查看結果

三、NUnit其他特性

[SetUp]會在每一次運行測試類中的一個測試方法之前都會執行setup方法

[TearDown]會在測試類中的每一個測試方法運行結束后,執行一次

[TestFixtureSetUp]運行在一個測試類中的所有測試運行之前設置狀態

[TestFixtureTearDown]在測試運行結束后進行清理

重寫測試類

namespace Manulife.LogAn.UnitTests {[TestFixture]public class LogAnalyzerTests{private LogAnalyzer analyzer = null;[SetUp]public void SetUp(){analyzer = new LogAnalyzer();}[Test]public void IsValidFileName_validFileLowerCased_ReturnTrue(){//act(操控)bool result = analyzer.IsValidLogFileName("whatever.slf");//assert(斷言)Assert.IsTrue(result, "filename should be valid!");}[Test]public void IsValidFileName_validFileUpperCased_ReturnTrue(){//act(操控)bool result = analyzer.IsValidLogFileName("whatever.SLF");//assert(斷言)Assert.IsTrue(result, "filename should be valid!");}[TearDown]public void TearDown(){analyzer = null;}} } View Code

執行過程

四、驗證預期的異常

1.修改LogAnalyzer.cs

namespace LogAn {public class LogAnalyzer{public bool IsValidLogFileName(string fileName){if (string.IsNullOrEmpty(fileName)){throw new ArgumentException("No filename provided!");}if (!fileName.EndsWith(".SLF")){return false;}else{return true;}}} } View Code

2.測試類中添加以下

[Test]public void IsValidFileName_EmptyFileName_ThrowException(){Exception ex = Assert.Catch<Exception>(() => analyzer.IsValidLogFileName(string.Empty));StringAssert.Contains("No filename provided!", ex.Message);}

五、忽略測試

修改以下方法

[Test] [Ignore("這個測試有問題")] public void IsValidFileName_validFileLowerCased_ReturnTrue() {//act(操控)bool result = analyzer.IsValidLogFileName("whatever.slf");//assert(斷言)Assert.IsTrue(result, "filename should be valid!"); }

六、設置測試類別

修改以下方法

[Test][Category("運行快點測試")]public void IsValidFileName_validFileUpperCased_ReturnTrue(){//act(操控)bool result = analyzer.IsValidLogFileName("whatever.SLF");//assert(斷言)Assert.IsTrue(result, "filename should be valid!");}

七、參數化重構單元測試

添加以下測試方法

[TestCase("somefile.slf")][TestCase("somefile.SLF")]public void IsValidFileName_ValidExtensions_ReturnsTrue(string fileName){bool result = analyzer.IsValidLogFileName(fileName);Assert.AreEqual(true,result);}

轉載于:https://www.cnblogs.com/kimisme/p/5562127.html

總結

以上是生活随笔為你收集整理的读书笔记-单元测试艺术(二)-单元测试框架的全部內容,希望文章能夠幫你解決所遇到的問題。

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