我進入一個項目,我們有一個大的代碼庫,目前它沒有任何單元測試框架。我們正在處理的代碼將最終運行在一個框上,交換機/路由器/防火牆。Gtest與大C和C++代碼庫
所以我正在研究一段需要使用Gtest進行單元測試的代碼。 我有這個問題是嘲笑變量以測試函數本身。 例如,我有一個函數,它使用4個指針指向不同的對象,並使用幾個全局變量。爲了測試代碼中的不同路徑,我需要初始化因變量的幾乎整個狀態machien/values。 增加了複雜性,因爲它在大型代碼庫中是真實的,我寫的這個函數/方法使用了一些其他需要測試的例程/方法。每個人都需要進行單向測試,每個人都有自己的依賴關係。 我不確定我是否正在處理這個問題,或者gtest可能不是測試這種大型代碼庫的正確工具。
如果任何人有發言權測試經驗說調用堆棧說
function A {
code
code
function B
code
code
function C
code
}
function B
{
function D
code
function E
}
function C{
code
function F
function G
code
}
像this.How做我測試所有這些功能,A-F?什麼是好策略?
爲什麼在編寫C代碼時標記爲C++?順便說一下全局變量是一個壞主意 – 2014-09-10 19:06:03
代碼庫有C和C++兩種,我知道全局變量是一個壞主意。這就是它現在的設計方法。要忍受它:) – 2014-09-10 20:18:50
測試大型/複雜代碼是不容易的。您需要編寫能夠處理代碼的測試,並且經常設置各種對象。在我工作的地方,編寫測試的時間通常是實際開發真實代碼所需時間的2-5倍。只有當測試代碼非常簡單時,這個數字纔會下降到1.5或2倍。有時測試代碼可能需要10次以上的原始代碼寫入。 – 2014-09-10 20:20:35