CppUnit 單元測試框架(二)

2021-03-31 08:57:00 字數 1304 閱讀 9421

在 cppunit 中,每乙個測試用例用乙個類表示,該類通常用於測試乙個模組,如果該模組是乙個類,正好對應這個測試用例。

每個測試用例類都必有繼承自 cppunit_ns::testfixture。如:

class sampletestcase : public cppunit_ns::testfixture

並且,這個類還需要定義一對巨集:

cppunit_test_suite (sampletestcase);

cppunit_test_suite_end ();

這對巨集裡面用於定義這個測試類所包含的測試方法。而且,在實現的源程式中也需要定義乙個巨集來 標識該測試類:

cppunit_test_suite_registration (sampletestcase);

除此之外,每個類還可以實現兩個方法:setup(), teardown()。第乙個方法在執行這個類的測試 方法之前被呼叫,而第二個方法則是在執行完這個類的測試方法之後被呼叫。例如,如果這個測試 類需要操作乙個檔案裡的資訊,通常在執行測試方法之前,需要開啟指定的檔案,這些處理則可以 放在 setup() 中實現。而完成測試之後,又需要將開啟的檔案關閉,這些操作可以在 teardown() 中實現。這兩個方法的原型是:

void setup ();

void teardown ();

每個測試方法用於測試一段功能,通常對應於被測試類的某公開方法。例如,在 sample 類中有乙個 foo () 方法,在測試類 sampletestcase 中也可以宣告乙個 foo () 方法。注意,強烈建議使用相同 的名稱,這樣便於維護。

每乙個測試方法需要在類的 cppunit_test_suite 巨集中新增乙個定義,以便 cppunit 能夠發現該測試方 法,如:

cppunit_test (foo);

在定義測試方法之後,就可以在該方法內編寫單元測試**了。單元測試框架都採用斷言式的測試方式, 即編寫乙個表示式,檢查其結果是否為真,真則表示通過。在 cppunit 中,用於檢驗測試是否通過的巨集 包括:

cppunit_assert (expr) : 檢查表示式 expr 是否為真,真則通過,假則錯誤。

cppunit_assert_trhow (expr, exception) : 檢查表示式 expr 是否丟擲異常型別 exception, 如果丟擲了指定型別的異常,則通過測試。

cppunit_assert_message (message, expr) : 類似於cppunit_assert, 但在沒有通過時輸出訊息 message。

cppunit_fail (message) : 強制性不通過測試,並輸出訊息 message。

C 單元測試工具CppUnit入門

cppunit是乙個開源的 跨平台的用於c 的單元測試工具。本文以vc6和vc8為例,簡單介紹其使用方法。如果我們希望程式編譯完成後自動執行測試,那麼我們就可以利用post build測試機制。在vc6的project settings對話方塊的post build step標籤下,在post bu...

利用CppUnit建立單元測試的過程。

步驟一 建立支援mfc的console工程,新增include和lib庫到vc,複製cppunitd dll.dll testrunnerd.dll testrunnerdsplugind到工程目錄下。步驟二 1.在包含 tmain 函式的檔案裡面 include include 在 tmain 裡...

go Test 單元測試 測試框架

1.建立乙個名為 test.go 的檔案 如果是包中的單元測試,就在包所在目錄下建立該檔案 並將下面的 新增到其中,函式命名統一為test t testing.t package main 包中的單元測試main替換成包名 import testing func testsum t testing....