2010-09-16 62 views
3

我有一個新的本機C++類,我想測試。它是從一個DLL導出(項目包括1 exe和很多dll)Windows C++單元測試:測試DLL導出類

更好的方法是:通過靜態鏈接或通過動態鏈接來測試它? 你通常在你的項目中做什麼?

問題是,在我正在處理的項目中,需要花費很多時間才能使其靜態編譯。所以我想知道測試是否值得大量重構。

在此先感謝

回答

1

在我的項目,我想直接測試DLL,所以我的訪問正好在相同的方式將在實際應用中的工作導出的函數和類(有可能是與靜態鏈接的細微差別)。

+0

如果該類也用於該dll,該怎麼辦? – direct4d 2010-09-16 07:08:58

+0

無論如何它都是可測試的,當然,並不像內部使用它 – martjno 2010-09-17 07:34:12

0

在工作中,我們嘗試運行兩組測試。

首先,我們靜態鏈接每個函數的單元測試,無論它是否是導出函數。這讓我們通過消除我們在「後端」代碼中發現的任何問題,在更受控制的環境中測試每個功能。

接下來,我們動態鏈接以測試導出的函數。這讓我們可以測試導出的函數,因爲知道所有東西都在調用堆棧中進一步運行,並進入庫中的非導出函數。

這種方法對我們來說效果很好,因爲我們發現了在運行動態鏈接測試時發現不同錯誤之前我們修復的靜態鏈接測試中的錯誤。如果我們只使用動態鏈接進行測試,那麼我們將花費更多的時間來調試/修復複合問題,而不是我們實際花費在修復兩個單獨的孤立問題上。