單元測試實踐的主要問題與解決(7)

(承上篇)ide


    這個底層函數返回的是一個對象指針,如何模擬呢?雙擊函數名,打開底層模擬器。函數

   

    首先,在前置代碼中定義對象並初始化。而後,在模擬值中填寫這個對象的地址。工具

   

    這是模擬的結果。單元測試

   

    複雜對象的數據同樣能夠移到表格中,這時,要移到表格中的不是對象自己,而是對象中包含的數據。例如,要把data.ui移到表格中,雙擊它的值「1234」就好了。測試

   

    咱們還能夠用局部數據模擬的功能,處理各類各樣的複雜情形。ui

   

    例如,如下函數處理的是由界面輸入的數據,這也是單元測試的一個難點。可使用局變數據模擬,把界面輸入轉換成普通的內部輸入。指針

    這個函數的邏輯功能是計算SQL字符串,但計算結果沒有輸出到外部,這是內部輸出,工具也能夠判斷內部輸出是否正確。

   

    下圖是測試結果:對象

   

     內部輸入解決以後,不管別人(關聯代碼),是否存在,是否正確,是否被隔離,均可以完整檢測我(當前代碼)。檢測我是否對全部數據,包括內部輸入,都作了正確的分類和處理。字符串

   

    從而實現單元測試的目標:不管別人怎麼樣,我老是對的! 若是全部代碼單元都作到了這一點,那會怎麼樣呢?整個項目就沒有代碼錯誤。it

    來看看嵌入式測試。在設備上進行單元測試不只難度大、成本高,也沒法達到應有的效果。若是在設備上測試,設備的一些輸出是難於控制的,例如這個例子,假設只有在發生雷擊時,獲取前車距離的函數纔會返回失敗,那咱們是否是等着雷擊呢?

    即便不考慮成本,嵌入式單元測試也應該在PC上進行,這樣才能作到「我老是對的」。

   


(未完待續)

相關文章
相關標籤/搜索