我正在嘗試爲模塊生成一些後編碼UT。 模塊將輸入數據分類到數據庫,如果發現匹配,則返回適當的值。從指定輸入和預期結果的場景表生成單元測試
在建立了一個包含所有可能的輸入場景及其預期結果的表格之後,我發現有超過50個測試需要創建。 由於所有測試基本上都是相同的,除了測試名稱和輸入之外,某種模板似乎適合於此處,從而減少了代碼混亂。
我最初想象的是要麼是一個創建這樣一個模板的宏,並將其擴展到輸入數據和預期結果的測試中,要麼使用一個表示場景表的結構,並在宏的幫助下將其結束。 (我猜這裏的C++模板也足夠了)。
但是,我不確定這是一條正確的路徑,並且想知道是否有人可以提供一些如何解決該問題的建議。 還有它如何適應TDD方法的問題..
下面是使用CppUTest的想法:
#define GEN_TEST_MOD_CLASSIFIER(GROUP_NAME, TEST_NAME, PRIORITY, isCOMPRESS, isX, EXPECTING) \
TEST(GROUP_NAME, TEST_NAME) \
{ \
int hit; \
setupDB(PRIORITY, isCOMPRESS, isX); \
hit = func(PRIORITY, isCOMPRESS, isX); \
CHECK_EQUAL(EXPECTING, hit); \
}
用例:
GEN_TEST_MOD_CLASSIFIER(Classifier_Tests, LowPriority_NoCompress_NoX__HIT, PRIO_LOW, NOT_COMPRESS, NO_X, HIT_DB)
感謝, 伊迪。