.net中单元测试
單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。對于單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函數,Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等。總的來說,單元就是人為規定的最小的被測功能模塊。單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。
xUnit 是一個適用于 .NET 的免費、開源、面向社區的單元測試工具。xUnit.net 由 NUnit v2 的原發明者編寫,是針對單元測試 .NET 應用的最新技術。xUnit.net 適用于 ReSharper、CodeRush、TestDriven.NET 和 Xamarin。它是 .NET Foundation 的項目,并在其行為準則下運行。
可以直接對方法進行異常測試,也可以對模擬對象進行異常測試,但是,對模擬對象進行異常測試,很少用,所以,這里就介紹對方法的異常測試。請看如下代碼,當用戶名為空的時候,拋出異常。
? 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;}這里用到了一個LastCall的一個類,比較常用,一些輔助測試的功能,都在該類中。
[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); }??????[TestMethod]public?void?Test_QuestionInsert(){//MongoHelper.RigisterConventions();//var?num?=?new?Random().Next(100000,?1000000);//new?QuestionBll().Insert(new?QuestionForAdd//{//????AnswerValue?=?new?Random().Next(1,?5),//????CategoryId?=?"57ecd3aa3a19a5287ccaa7f0",//????Title?=?"題目題目題目"?+?num++,//????Options?=?new?List<AnsQuestionOptions>//????{//????????new?AnsQuestionOptions?{Img?=?null,?Text?=?"選項選項選項"?+?num++,?Value?=?1},//????????new?AnsQuestionOptions?{Img?=?null,?Text?=?"選項選項選項"?+?num++,?Value?=?2},//????????new?AnsQuestionOptions?{Img?=?null,?Text?=?"選項選項選項"?+?num++,?Value?=?3},//????????new?AnsQuestionOptions?{Img?=?null,?Text?=?"選項選項選項"?+?num,?Value?=?4}//????},//????Type?=?QuestionType.DoubleText//});}總結
- 上一篇: Visual Studio 2022 预
- 下一篇: 基于事件驱动架构构建微服务第1部分:应用