2、 單元測試實踐的主要問題程序員
單元測試有個特色:測試簡單獨立的代碼很容易,但要在實際工做中作好單元測試卻很困難。框架
根據咱們的經驗,企業在實施單元測試時,一般會面對四大問題——ide
3、 解決思路和方法函數
如何解決上述問題呢?接下來,談談一些思路和方法,使用的工具是Visual Unit。Visual Unit,簡稱VU,是可視化的C/C++單元測試工具。
3.1 如何解決「不肯作」和「沒時間」工具
對於「不肯作」,咱們採用的對策是可視化,這個可視化,是指程序行爲可視,後面我會用案例來演示;對於「沒時間」,採用的對策是自動化,經過自動生成測試代碼、自動打樁等功能,讓測試的時間成本最小化。這二者結合起來,就是ETDD開發模式。單元測試
那麼,ETDD是什麼呢?測試
首先來介紹一下TDD,TDD就是測試驅動開發,這個你們可能聽得比較多了。ETDD就是Easy TDD,即:易行版的TDD。ETDD具備如下一些特色:編碼
下面,我用一個案例,講解一下ETDD的過程:開發
假如我要編寫一個函數,它的功能是刪除字符串左邊的空格。字符串
先寫好函數的框架,能經過編譯就行。在編寫代碼前,程序員必需要作的一件事情,是想清楚代碼的功能。若是咱們想的時候,順手把它記錄下來,就可讓代碼的功能更清晰、更明確。
咱們如今來記錄代碼的功能。這裏的記錄,不是文字形式的寵統說明,而是數據形式的精肯定義,也就是用輸入和輸出的方式來記錄。
首先,記錄最基本的功能,也就是最基本、最多見的輸入和輸出。輸入一個左邊有空格的字符串,輸出是刪除左邊空格後的字符串,返回值跟參數的輸出是同樣的。
而後,記錄詳細的功能。例如,左邊沒有空格的,全是空格的,還有空字符串。
把每種輸入的正確輸出也記錄一下。完成了這個工做後,代碼的功能就徹底定義下來了。
如今,咱們開始編寫代碼。個人編碼思路是這樣的:分爲兩步,第一步計算左邊的空格數量;第二步,將非空格的字符向左移動,覆蓋掉左邊的空格。
如下幾行代碼,計算左邊的空格,如今編譯一下。CTRL+F7。若是編譯經過,測試就會自動運行。
咱們能夠看到,輸入是什麼,執行了哪些代碼,產生了什麼輸出。這裏,黑色的是當前輸入下所執行的代碼,未執行的話會顯示爲紅色。這裏全是黑色,表示當前輸入下執行了所有代碼。若是咱們想看一下計算左邊空格的結果對不對,這是內部的數據,要指定位置後纔會打印出來。按ESC鍵回到開發環境。
用這種語法能夠輸出內部數據,適合於程序員開發過程當中使用。複雜類型也能夠用一樣的語法輸出。
另外一種輸出內部數據的語法是,在左邊的代碼窗口,在要輸出的位置點擊一下,右鍵菜單選擇「輸出內部數據」,這樣填一下就好了。這種方式不會修改產品代碼,適合於測試員使用。
再次執行後,能夠看到,左邊的空格的數量是4,這是對的,那咱們能夠繼續編寫。
(待續)