簡體   English   中英

c ++測試herimitic庫

[英]c++ testing herimitic library

我決定為我的庫添加測試。 問題是大多數(所有?)測試框架都使用相同的方法:構建一個可執行文件,其中包含要測試的代碼,測試和框架。

但是如果我有一個很重的庫(里面有很多代碼)但只有一些公共函數/類呢? 在這種情況下,我無法測試它,直到:

  1. 我從庫中導出所有符號
  2. 我構建了包含所有庫源的可執行文件

廣告。 1:這不好

廣告。 2:當我使用visual studio時,它需要我將庫項目與'test'可執行項目(添加/刪除文件等)同步。 所以它對我來說也不好看。

還有其他方法嗎?

如果你能做2)所以你應該能夠重新組織你的文件/文件夾/項目;

1)包含所有內部函數和對象的靜態庫項目2)使用任何框架的測試項目(每個都有很多pro&con的框架,如果你是初學者,我的建議是選擇集成解決方案或簡單框架)。 該測試項目必須在靜態庫中DEPEND(在解決方案資源管理器菜單中添加依賴性)。 因此,您可以在內部實現上添加測試

現在是外部api。

3)您的舊DLL項目僅保留公共API定義和實現。 和靜態庫的DEPEND。

4)為您的公共API添加一個測試項目

無需同步項目和編譯代碼兩次,並且只需外部api就可以測試更多,而無需更改內部代碼。

通常,測試驅動編程適用於許多小型“單元”。 擁有一些膨脹的“單位”使得測試階段無法忍受!

我看到唯一可行的解​​決方案是隔離代碼的特定部分,然后使用調試器進入它們。 擁有許多private函數通常會導致上述問題,並且由於您無法在單元測試期間直接訪問它們,因此您應該考慮將調試器用於非顯而易見的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM