斷言,字面上的意思大致是十分肯定的說,也就是說我們相信這個結果是真的.如果我們的斷言不為真,那這個這個結果就和我們預期的結果不一樣.在編程上同理,如果程序運行出來的結果和你想要的結果不一致,那你的程序里面的這個方法或者函數就達不到你想要的需求,也就是說這個程序是有一些問題的.這是網上關於斷言的一些解釋.
編寫代碼時,我們總是會做出一些假設,斷言就是用於在代碼中捕捉這些假設。斷言表示為一些布爾表達式,程序員相信在程序中的某個特定點該表達式值為真,可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言而在部署時禁用斷言。同樣,程序投入運行后,最終用戶在遇到問題時可以重新啟用斷言。
其實我感覺,斷言就像是一個if語句,如果結果和你的預期一樣,那么OK,結果為真繼續運行.如果結果和預期不符,那么程序會拋出一個系統級錯誤(不是異常),並且終止程序運行.例如下面這個單元測試.
1 public void AddTest() 2 { 3 int a = 20; 4 int b = 20; 5 6 Assert.AreEqual(Program.Add(a,b),40); 7 }
這是對一個加法方法的測試,我們分別給兩個數a,b賦值並作為參數傳遞到方法Add(int num1,num2)中,Line 6 中的語句就是設置的斷言,在這里我斷言Add的返回值和40相等,運行測試,結果如下圖:
當我們把斷言中的結果設置成其他的數字,再次運行測試,結果就會變成這樣:
斷言的使用包括以下兩種形式:
- assert Expression1
- assert Expression1:Expression2
其中Expression1是一個布爾值,來判斷斷言是否成功.Expression2則是斷言失敗時輸出的失敗消息的字符串.