**
unity 5.1為開發者帶來了全新的斷言庫。本篇文章中,我們將為您闡述何為斷言庫(assertion library),以及您如何用它以提公升遊戲中執行錯誤的診斷效率。
斷言是什麼?為何要用它?
乙個斷言就是一種檢查狀態的方法,如果這個狀態為true,那麼執行就會繼續下去。若有任何突發異常或期望狀態沒有出現,一條顯示使用者自定義的資訊就會被印出在呼叫堆疊。讓我們看如下這個範例:
assert.areequal(selection.activegameobject
.name, "ttt", "not equal");
如很多開發者所知,斷言源於單元測試。在單元測試中採用「 arrange-act-assert「來對比所期待的結果和真實結果是測試的最後乙個環節,斷言不僅僅是測試,你還可以利用它檢測在執行過程中不變數被修改時獲得警示。但是,並不是所有的斷言只能被運用在執行(runtime)**中。
單元測試框架中的斷言庫是適用的嗎?
極有可能您是首次在單元測試框架中遇到斷言。舉例:讓我們試試nunit,nunit是乙個用於斷言測試有著非常豐富並已用於大量實踐的庫。那麼,問題來了,為什麼你僅僅想要利用這個庫去測試你的產品**呢?
nunit斷言允許你去測試許多東西。從最簡單的對比狀態測試到複雜的蒐集測試傳遞異常。但是問題是執行花費時間很長。低階的斷言需要盡可能的精簡,不花費額外的耗費。斷言庫就是用來幫助您減少額外的耗費和不必要的執行。
乙個斷言庫最好能從發布包外呼叫。因為斷言在產品發布週期對開發者很有用處,但是結束之後斷言庫對於使用者毫無意義。當你在打包最終版本時你會想要去除所有的斷言呼叫。你可能會採取注釋所有的**,但是這實在不是乙個聰明的辦法。還好,.net有乙個條件編譯機制。斷言庫只會在符合條件玩家使用的開發包裡呼叫斷言。但是,仍有可能包含被編譯選項採用的斷言。
最後但也是很重要的,通常單元測試的斷言庫是建立在異常的基礎上的。乙個異常出現在一次執行的失敗時。顯然,這針對執行階段時的**並不理想。斷言庫已經整合到unity log系統,錯誤發生時,一條訊息就會被記錄。斷言庫通用於所有的unity支援平台。這就意味著即使在不支援異常反饋的aot平台上也能執行斷言。
那麼,這個斷言庫里都包含了什麼內容?
該庫提供了多種不同型別的比對方法和乙個對等比較器。以下舉列一些斷言方法:
areequal -一般比較器,用來最基礎的對等比較。預設的對等比較器。
istrue - 快速簡易的布林變數檢查。
所有的方法都收錄在斷言文件中:
qs庫使用指南
qs是乙個流行的查詢引數序列化和解析庫。可以將乙個普通的object序列化成乙個查詢字串,或者反過來將乙個查詢字串解析成乙個object,而且支援複雜的巢狀。它上手很容易 qs.parse x 1 qs.stringify x 5b0 5d 1qs的兩個方法都接受乙個可選的第二引數,可以讓我們對結果...
LJS控制項庫 Dialog使用指南
dialog控制項效果圖 注意 dialog為ljs中的乙個控制項,使用前請閱讀ljs使用指南 dialog的配置檔案實際上是乙個xml檔案,該配置檔案用於說明將要建立的dialog的標題,樣式,內容等,配置檔案說明如下圖所示 配置檔案中根節點 屬性說明 屬性 說明 width 寬度 height ...
Linux動態庫生成與使用指南
linux下動態庫檔案的檔名形如lib so,其中so是 shared object 的縮寫,即可以共享的目標檔案。在鏈結動態庫生成可執行檔案時,並不會把動態庫的 複製到執行檔案中,而是在執行檔案中記錄對動態庫的引用。程式執行時,再去載入動態庫檔案。如果動態庫已經載入,則不必重複載入,從而能節省記憶...