我正在测试我的功能的正确操作
bool Core::IsMeta(void) { return mProc->GetCode(mPC)->Meta; }
使用说明
EXPECT_EQ(true,CC->IsMeta()); // The instruction pointed to is meta EXPECT_EQ(false,CC1->IsMeta()); // The instruction pointed to is NOT meta
测试运行正常,但两个测试表现不同:'true'情况编译好,'false'情况表示警告
在/ ..../build/gtest/src/gtest/include/gtest/gtest.h:1929:0中包含的文件中,来自/ ... .cpp:1:/ ... .cpp:在成员函数中'virtual void ... :: TestBody()':/ ... /build/gtest/src/gtest/include/gtest/internal/gtest-internal.h:133:55:警告:将'false'转换为指针'char testing :: internal :: IsNullLiteralHelper(testing :: internal :: Secret*)'[-Wconversion-null]的参数1的类型(sizeof(:: testing :: internal :: IsNullLiteralHelper(x))== 1 )^
为什么gtest想要将'false'转换为指针?为什么不'真实'?我错过了什么吗?
对于布尔值,你需要使用EXPECT_TRUE()
和EXPECT_FALSE()
,而不是EXPECT_EQ
.