最初发布于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'失败。”部分行可能是异常消息?我不使用谷歌测试,所以我不确定当一个意外的异常被抛出时它的消息是什么样的。 –