單元測試--llorch的Visual Studio 基礎工具教程(二)

來源:互聯網
上載者:User

標籤:

通用的樣本說明:
  • 本系列部落格只討論工具的基礎,不討論任何語言。
    • 甚至不討論快速鍵:-)
    • 可以用滑鼠就完成本教程
  • IDE預設指代的是Visual Studio 2013 Community Edition。 本系列文章的結尾,你可以熟練地使用它寫程式。
  • 將Visual Studio啟動後的預設布局狀態稱為主視窗,主視窗標題列中顯示的項目名稱不必要。
  • 在日常口語和Windows資源管理員的基礎上定義了幾個描述菜單操作的符號:[]、{}、/、>>、=、(,)。
  • 檢查一個設定項的表示方法為:
    • [視窗名稱]/{菜單名稱}/{子功能表名稱}/{設定項項名稱}=設定項的值
  • 例如預設的Debug配置:
    • [主視窗]/{解決方案組態管理員}=Debug
  • 檢查多個設定項時,按照單個設定項的方式,逐一寫出
  • 檢查一個設定項有多個值的時候,用括弧包括並用內部的逗號分隔,如:
    • [方案總管]/{項目名稱}/{引用}=(System,System.Core,System.Data,System.Xml)
  • 執行一個左鍵單擊序列,就是將最後的檢查項換成”/”,例如退出IDE:
    • [主視窗]/{檔案}/{退出}/
  • 右鍵菜單的串連符號為>>,例如重新整理Windows案頭:
    • [案頭]>>{重新整理}/
  • 快顯視窗中的設定項的表示與上類似
  • MDI子視窗中設定項的表示與上類似,注意到在Visual Studio中,MDI子視窗的名稱在它的左上方或者可能自動吸附到主視窗的四周
  • 標題列和狀態列作為菜單的推廣,適用於上述表示方法
  • 缺陷說明
    • 歡迎反饋,mailto:[email protected]
    • 作者的慣用語言是C#
    • 作者是軟狗
    • 作者的IDE沒裝中文語言套件,所以有的名詞翻譯得不準確:-(
    • 由於還沒有釐清相關的認證問題,著作權保留
    • 系列文章沒有提出或解決新的問題,目的只是科普

 

本文

 

第一,測試先行

測試先行至少代表了兩個好的實踐:一是在後續的工作中可以專心於編寫程式之上;第二更加深層的理由是介面已經穩定。介面與實現的辯證關係是這樣的,“髒” 代碼總是從介面和實現都不穩定的編程開始的。介面和實現都穩定的肯定不是編程,而是產品。介面穩定而實現不穩定的代碼還有改善的可能,而介面不穩定的代碼基本上難以推進工作。總之,不應該在介面不穩定的情況下開始寫代碼。

原始碼與程式碼片段之間最大的區別在於,原始碼可以在一段時間以內保持穩定,因為原始碼是充分測試過的。一般的樣本只能說明原理,用作程式碼片段,而不能作為原始碼。

測試先行不代表首先建立測試專案。相反,應該先建立項目”項目1”,然後再建立項目”項目1Test”。邏輯上的順序是這樣的:先確定項目的類型,其次確定項目的介面,然後根據介面編寫測試專案的內容,最後進入”編碼——測試”的反覆迴圈,直到寫出了能夠通過測試的代碼。至此又開始另一個”項目X”的工作。

 

第二,單元測試

單元測試是最簡單而且最有必要的測試。Visual Studio已經整合了很好的單元測試實踐,讓我們開始吧:-)

[主視窗]/{檔案}/{建立}/{項目}/

[建立項目]/{單元測試項目}/

[建立項目]/解決方案=添加到當前解決方案

[建立項目]/OK/

這樣,我們的解決方案當中有了一個新的測試專案。可以發現測試專案的引用非常簡單。在引用處添加對需要測試的項目的引用,就可以開始編寫測試函數了。

運行測試專案的方法是:

[主視窗]/{測試}/{運行}/{所有測試}/

這會彈出測試資源管理員,告訴使用者在測試函數執行過程中出現的問題。值得注意的是,自始至終,不推薦為每一個測試單獨再編寫main()方法,因為main()方法對應的控制台應用程式是一個系統的前端。當然,編寫專門的控制台應用程式來進行全部測試也是不錯的。

 

第三,測試和調試的區別

最直觀的區別在於,調試就是檢查斷點處的狀態是否符合預期,測試就是看整體上的行為是否符合預期。調試的目的是確保正確的實現,著重介面的內部實現,通常不需要藉助專門的外部代碼。測試的目的是要集中精力去實現,著重介面的外部行為,要藉助專門的外部代碼。有的測試還需要藉助外部的測試集(可以理解成一個txt檔案)來進行。

 

第四,測試的代碼品質

測試還有一個可愛的好處是,測試代碼的要求沒有正式代碼那麼苛刻:-)。通常可以借用一些教科書或者官方的範例程式碼。

 

第五,編程中精力的分配

測試的智慧在於集中。測試從工序上說,是先用一小段時間確定了測試方法,然後用一大段時間去編寫實際工作的代碼。它避免了開發人員同時寫業務代碼和驗證代碼的尷尬。因此,可以說測試的好處在於讓開發人員將精力集中到實現上去。

不僅如此,測試確保了整個開發工作圍繞介面來進行,有利於複用和升級。

 

總結

使用Visual Studio完成的測試只能作為使用者瞭解軟體工程的一個開始,但是”在一段時間以內專註地進行編程”而不是寫一大堆難以控制的main方法這個方法論是值得保持的。

單元測試--llorch的Visual Studio 基礎工具教程(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.