下面是一个示例代码,演示如何使用Google Test(gtest)来验证一个类是否为空:
#include
class MyClass {
public:
MyClass() {}
~MyClass() {}
int getValue() const {
return value;
}
void setValue(int newValue) {
value = newValue;
}
private:
int value;
};
// 定义一个测试套件
class MyClassTest : public ::testing::Test {
protected:
MyClass obj;
};
// 验证类的初始状态
TEST_F(MyClassTest, DefaultConstructor) {
EXPECT_EQ(obj.getValue(), 0);
}
// 验证在设置值之前,类的值是否为默认值
TEST_F(MyClassTest, SetValueBefore) {
obj.setValue(10);
EXPECT_EQ(obj.getValue(), 10);
}
// 验证在设置值之后,类的值是否正确
TEST_F(MyClassTest, SetValueAfter) {
obj.setValue(20);
EXPECT_EQ(obj.getValue(), 20);
}
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
在这个示例中,我们首先定义了一个名为MyClass
的类,它具有一个value
成员变量和相应的getValue()
和setValue()
函数。然后,我们使用MyClassTest
作为测试套件,定义了三个测试函数:DefaultConstructor
,SetValueBefore
和SetValueAfter
。每个测试函数使用EXPECT_EQ
宏来验证预期结果是否与实际结果相等。
在main
函数中,我们调用::testing::InitGoogleTest
来初始化gtest,并调用RUN_ALL_TESTS
来运行所有的测试。
使用这个示例,我们可以验证MyClass
类的行为是否符合预期,并确保它不是空的。