我這里介紹一下一個實現加法功能的程序(就是,給定2個數,該程序返回這兩個數的和,夠簡單吧^_^)單元測試過程。首先我建立了3個目錄:include、add、unit_test。在include目錄里包含uni_test.h(該文件作用下面我會介紹)、add.h、Check.h(該文件是該測試框架源代碼中的一個頭文件,在建立單元測試的過程中,需要包含該頭文件)。在unit_test.h和add.h填入一些最基本代碼
uni_test.h
#ifndef _UNIT_TEST_H
#define _UNIT_TEST_H
#endif
#include "Check.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif
在上面代碼中我們包含了Check.h頭文件。在add.h頭文件中,除了不包含該頭文件外,基本代碼是類似的。
接著,我們在add目錄里建立add.c文件,并在其中#include "add.h"。
在unit_test目錄中,我們建立test_add.c文件(用來編寫測試用例的,并在其中包括Check.h)、test_main.c文件(該文件作用下面會介紹,這里面包含main函數)和libcheck.a(該靜態庫是編譯check框架源代碼生成的,在編譯測試用例的過程中需要連接該庫。
ok,萬事具備了,開始寫測試用例吧。在test_add.c文件中加入測試用例
START_TEST(test_add)
{
fail_unless(add(2, 3) == 5, "god, 2+3!=5");
}
END_TEST
通過上面這種方式,我們定義了一個測試用例。該測試用例名字為test_add。并且我們通過宏fail_unless這種方式,預期add(2, 3)會返回5,如果不返回5,那么我們將輸出god, 2+3!=5這樣的信息。同時,該測試用例沒有被PASS^_^,而是FAIL。
現在我們編譯test_add.c、test_main.c和add.c,這樣當然編譯不過去,因為我們還沒有寫實現代碼。在add.c加入如下實現代碼:
int add(int i, int j)
{
return 0;
}
文章來源于領測軟件測試網 http://www.kjueaiud.com/