最初發佈於googletestframework論壇。如何使用Google測試框架測試共享庫
我剛開始與谷歌C++測試框架播放,並已通過樣品的工作。我正在使用Linux,Eclipse和Linux GCC工具鏈。我還在Eclipse中安裝了C/C++單元測試插件。
我有一個共享庫項目,我試圖編寫測試,但遇到了一個我無法弄清楚的問題。爲了測試我的共享庫項目,我已經構建了一個單獨的可執行項目,並將測試放在此項目中。
我已經添加了必要的包含路徑和庫,以便構建所有東西,但是當我嘗試從我的可執行項目運行測試時,該測試輸出沒有向我顯示任何有意義的東西。這是一個例子。
這是我的測試類,在可執行項目(ChallengeResponsePacket是我的共享庫項目中的一個類)中名爲ChallengeResponsePacketTest.cpp的文件。
TEST(ChallengeResponsePacketTest, shouldSerializePacket) {
const unsigned char SALT[] = {0x01, 0x02, 0x03};
const char username[] = "daver";
unsigned char buffer[100];
ChallengeResponsePacket packet;
packet.setSaltValue(SALT, sizeof(SALT));
packet.setCompressionType(0);
packet.setEncryptionType(0);
packet.setUsername(username);
int size = packet.serialize(buffer, sizeof(buffer));
EXPECT_EQ(12, size);
EXPECT_EQ(5, buffer[0]);
}
這是我得到的輸出:
[----------] 1 test from ChallengeResponsePacketTest
[ RUN ] ChallengeResponsePacketTest.shouldSerializePacket
gtest_test: ../src/ChallengeResponsePacket.cpp:34: virtual int tnp::ChallengeResponsePacket::serialize(unsigned char*, size_t) const: Assertion `_clientHashLength > 0' failed.
Aborted
正如你可以想像,在C/C++單元測試插件已經不知道該怎麼做這個。
是否有某種原因,我沒有得到通常相當谷歌測試框架的輸出?
我想另外一個問題我已經是,如果這是使用測試框架來測試共享庫代碼的最佳方式?
感謝,
它看起來像我圖書館拋出異常? 「Assertion'_clientHashLength> 0'失敗。」部分行可能是異常消息?我不使用谷歌測試,所以我不確定當一個意外的異常被拋出時它的消息是什麼樣的。 –