C 單元測試 測試private成員

2021-09-24 17:58:46 字數 918 閱讀 7834

文章中部分觀點參考自

參考鏈結

在進行單元測試時,是否需要測試私有成員仍然有爭議。一般情況下,測試public型別函式就足以覆蓋到private成員的測試。如下例所示:

class visit

public:

void

setx

(int a)

void

sety

(int b)

intgetadd()

};test

(visittest,test_through_public_function)

intmain

(int argc,

char

*ar**)

測試結果為:

但是當public函式測試失敗,需要排查錯誤點時,仍然需要對其呼叫的private成員進行測試。

主要有以下幾種方法:

1.使用friend

使用friend關鍵字,但是會修改原有的**

2.使用#define private public將private變成public

在測試**的標頭檔案前新增

#define private public
在當前檔案範圍內將public修改為private,可以在不修改源**的情況下訪問private成員

3.通過位址偏移訪問類的資料成員

該方法只適用於訪問類的成員變數、不適用於訪問類的成員函式。

綜上所述,在堅持要測試private函式的情況下,推薦使用第二個方法。

c 單元測試

資料庫單元測試 1.資料庫設計 person id int,主鍵 username password age 2.新建乙個專案 2.1.定義person類 public class person set public string username set public string passwor...

C 單元測試

單元測試,或者更大一些的自動化測試,對提高軟體質量是有很大幫助的。通過一系列預先設計的規則,就可以覆蓋大量的測試點。尤其是對重構一類的任務,確保修改前後系統行為不變很重要,而修改後的回歸測試工作量又極其繁重,此時單元測試,或者自動化測試就能體現出無以倫比的效率。我在2005年學python不久,就鬱...

C 單元測試

學歷代表你的過去,能力代表你的現在,學習代表你的將來 十年河東,十年河西,莫欺少年窮 學無止境,精益求精 廢話咱也不多說,直接進入正題 首先說說單元測試的好處 今天說說c 的單元測試特點 1 單元測試的類名用 testclass 標註 2 單元測試的方法名用 testmethod 標註 3 單元測試...