簡體   English   中英

C單元測試功能

[英]C unit testing functions

在C或C ++中,如果我有一個具有以下結構的程序:

..includes..
..defines..

void function_one(int i) {
    ...
}

void function_two(const char * str) {
    ...
}

int main(int argc, char *argv[]) {
    ...
}

保存為main.c/cpp

如何編寫一個新文件test.c/cpp ,可以在其中調用main.c/cpp的函數?

我現在如何做:

編譯器標志: -etest_main
要編譯的文件: main.c test.c
運行測試輸出: Blank no errors

我的測試主文件顯示“此處”,但我不確定為什么測試可執行文件不存在。

看一下CUnit,這樣您就不必重新發明輪子了。 這是他們的Devs 文檔簡介。

它是xUnit系列測試框架的一部分,已經存在了很多年。

您無法輕松地測試與main功能位於同一編譯單元中的功能。

可能的解決方案:

將您的main.{c/cpp}拆分為兩個源文件(編譯單元)。 一個文件應僅包含main功能,另一個文件應包含所有其他功能。 在進行單元測試時,只需不要鏈接包含單個main函數的編譯單元。

或者,在為單元測試進行編譯時,請使用宏來排除main功能。

暫無
暫無

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

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