2014-03-27 64 views
0

我有一個非託管mfc應用程序。我想集成一些使用gmock的單元測試。我添加了所有的包含庫。如何在MFC應用程序中使用gmock

但是我該如何開始運行測試?

我知道他們使用主要方法在其他情況下運行測試。

#include "gmock/gmock.h" 

int main(int argc, char** argv) { 
    testing::InitGoogleMock(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

但自mfc應用程序沒有主要方法,但沒有InitInstance方法。 我該如何開始跑步測試?

回答

2

Google建議您爲您的測試創建一個單獨的項目 - 測試項目 - 它有自己的int main。他們FAQs page參考指導以下資源:

http://hassanjamilahmad.blogspot.com/2009/07/gtest-starters-help.html

(這是有道理的,如果你認爲它有您應該在最終產品中部署的單元測試沒有真正的理由單元測試都是爲了。 。開發者食用;不是你的客戶)

概括地說,這裏是一般設置:

  • 創建一個空的C++項目並配置它來建立一個.exe
  • 在這個項目定義一個int main,並添加你提到
  • 指定的測試項目是依賴於主項目的輸出(在連接屬性)
  • 添加一個生成後事件的googletest樣板代碼這個項目調用它自己的輸出,從而自動運行測試

有些東西根據以往的經驗警惕的,:

  • 這安裝程序需要將MFC項目中的類/函數導出才能被測試項目使用(否則它無法訪問它們)

  • 我們遇到了一些連接問題(即通過鏈接器)我們的MFC項目到測試項目。我們最終將MFC項目中的代碼解壓到單獨的庫中,並使用googletest來測試這些庫。 (這些都是很容易配置,並與代碼組織作爲獎金幫助。)

上編輯:爲了澄清,這些細節對應googletest,但也適用於gmock,因爲gmock使用googletest下引擎蓋。

相關問題