.Net单元测试方法
單元測(cè)試是一種編程測(cè)試,這些測(cè)試既可以使用 Visual C# 或 Visual Basic 編寫,也可以使用 Visual C++ 編寫并用 /clr:safe 選項(xiàng)進(jìn)行編譯。
單元測(cè)試用于通過(guò)直接調(diào)用某個(gè)類的方法(傳遞相應(yīng)參數(shù))來(lái)執(zhí)行其他源代碼。因此,如果包括 Assert 語(yǔ)句,它們可以根據(jù)所期望的值來(lái)測(cè)試實(shí)際生成的值。單元測(cè)試方法位于測(cè)試類中,測(cè)試類則存儲(chǔ)在源代碼文件中。
可以使用能夠創(chuàng)建測(cè)試的初始源代碼的代碼生成功能來(lái)創(chuàng)建單元測(cè)試,也可以完全手動(dòng)編寫測(cè)試。無(wú)論使用何種方式,測(cè)試類和所有測(cè)試方法都用編程屬性加以標(biāo)識(shí)。
用 [TestClass()] 屬性標(biāo)記每個(gè)測(cè)試類。每個(gè)單元測(cè)試都是一個(gè)使用 [TestMethod()] 屬性標(biāo)記的測(cè)試方法。這些屬性是在生成單元測(cè)試時(shí)自動(dòng)分配的;如果是手動(dòng)編寫單元測(cè)試代碼,則必須自行添加類和方法的屬性。
測(cè)試異常
可以直接對(duì)方法進(jìn)行異常測(cè)試,也可以對(duì)模擬對(duì)象進(jìn)行異常測(cè)試,但是,對(duì)模擬對(duì)象進(jìn)行異常測(cè)試,很少用,所以,這里就介紹對(duì)方法的異常測(cè)試。請(qǐng)看如下代碼,當(dāng)用戶名為空的時(shí)候,拋出異常。
? public?bool?Valid(string?userName,?string?passWord){if?(string.IsNullOrEmpty(userName))?throw?new?ArgumentNullException("userName?is?null");var?isValid?=?userName?==?"admin"?&&?passWord?==?"123456";Log.Write(userName);return?isValid;}測(cè)試代碼如下
? [Test][ExpectedException(typeof(ArgumentNullException))]public?void?Vaild_Throw_Test(){MyLogin?l?=?new?MyLogin();l.Valid("",?"123456");}測(cè)試返回值
這里用到了一個(gè)LastCall的一個(gè)類,比較常用,一些輔助測(cè)試的功能,都在該類中。
[Test] public?void?Valid_Return() {MockRepository?mock?=?new?MockRepository();var?log?=?mock.DynamicMock<ILog>();using?(mock.Record()){log.WriteLog("admin");LastCall.Return(0);}var?returnValue?=?log.WriteLog("admin");Assert.AreEqual(returnValue,?0); }總結(jié)
以上是生活随笔為你收集整理的.Net单元测试方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: using IDisposable
- 下一篇: .Net Core with 微服务 -