天天看點

《測試驅動的嵌入式C語言開發》——2.1節什麼是自動化單元測試架構

2.1 什麼是自動化單元測試架構

自動化單元測試架構就是一個軟體包,它能讓程式員表達産品代碼應該有什麼樣的行為。自動化單元測試架構的工作就是要提供以下能力:

用于表述測試用例的通用語言;

用于表述期望結果的通用語言;

能夠使用産品代碼所用程式設計語言的功能;

能把所有的工程、系統或子系統中的單元測試用例收集到一起;

一個能運作全部或者部分測試用例的機制;

對于測試套件的成功和失敗給出明确的報告;

對于失敗的測試給出詳細的報告。

本書中用到的兩個單元測試架構在測試嵌入式C代碼以及開源代碼中都很流行,并且它們也很容易使用。這兩個自動化測試架構都承襲自xUnit單元測試自動化架構系列。

為了友善閱讀本書,這裡介紹幾個術語:

被測代碼,就是被測試的代碼,不需要太多解釋。

産品代碼,是指産品中(或者将要成為産品中)的代碼,将來要出現在釋出的産品中。

測試代碼,是指用來測試産品代碼的代碼。這些代碼不會出現在釋出的産品中。

測試用例,是用來描述被測代碼行為的一段測試代碼。它會建立測試的先置條件并檢驗重要的後置條件是否滿足。

測試夾具,是用來為一系列的測試用例提供一個合适環境的代碼,進而使這些測試用例能夠運作被測代碼。測試夾具會通過建立通用的設定以及用來運作産品代碼的環境來輔助測試。

為了更好地了解這些術語,讓我們來看一些示例測試,它們将測試我們大家都用過的一個函數:sprintf()。在這個例子中,sprintf()就是“被測代碼”,同時它也是“産品代碼”。

sprintf()作為第一個例子很合适,因為它是一個獨立的函數,是測試起來最直接的一種函數。獨立函數的輸出完全由直接傳給它的參數決定。它不會有可見的外部互動或者被儲存起來的狀态來妨礙我們。每次對這個函數的調用與之前的任意次調用之間都是不相關的。

繼續閱讀