2016-02-19 40 views
2

我有一個C++(VS 2013)控制檯應用程序,我想測試它(使用Google測試)。VC++ VS 2013,如何從另一個項目中使用(測試)類?

我創建了一個單獨的項目,並添加GTEST包括(使用本教程http://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php爲exanple)和簡單的測試,這樣的做工精細路徑等:

TEST(MyTests, myTest1) 
{ 
    EXPECT_EQ(2+2, 4); 
} 

但如何從主項目中使用類?如果我只是簡單地添加項目目錄來包含路徑,那麼我可以使用「僅頭文件」代碼,但對於在.cpp中執行的類,我得到unresolved external symbol錯誤。

有沒有比移動所有類到圖書館更好的方法來測試它?

+0

_「是否有比將所有類移動到庫更好的方法」_否,您需要爲待測試類創建一個庫。 –

+0

將必需的源文件包含到您的測試項目中。或者,將測試項目文件移動到測試項目文件所在的相同文件夾(因此包含/排除文件會更容易)。這對於小型項目來說工作得很好,但很快就會在一個大型多項目解決方案中變得混亂。 – Drop

+0

而不是「將所有類移動到一個庫」將其視爲「將'main'函數移出到可執行項目中」。事情會變得更容易。 ;) – Drop

回答

1

使您的項目成爲圖書館。並且爲啓動製作一點可執行文件這解決了許多問題。有很多項目使用這種策略。其中之一是Chromium。另一個例子是Perl語言解釋器。您的項目庫將很容易鏈接到測試。

+0

是的,我最終使用這種方法,看起來是最簡單的。雖然我認爲它不像它應該那樣容易,就像其他語言一樣。:( – AlexP11223

相關問題