- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用最新的 gtest。以下代码编译失败:
Error_code rc = some_function();
ASSERT_EQ(OK, rc);
Error_code 是一个枚举类型定义:
typedef enum {
OK = 0,
Warning,
Error
} Error_code;
错误信息没有意义:
Downloads/gtest-1.7.0/unzipped/include/gtest/internal/gtest-internal.h:1026:5: error: could not convert ‘testing::internal::AssertHelper((testing::TestPartResult::Type)2u, ((const char*)"source/unit_test/test.cpp"), 182, gtest_ar.testing::AssertionResult::failure_message()).testing::internal::AssertHelper::operator=((*(const testing::Message*)(& testing::Message())))’ from ‘void’ to ‘std::vector<Ttype>’
= ::testing::Message()
^
Downloads/gtest-1.7.0/unzipped/include/gtest/internal/gtest-internal.h:1029:3: note: in expansion of macro ‘GTEST_MESSAGE_AT_’
GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type)
^
Downloads/gtest-1.7.0/unzipped/include/gtest/internal/gtest-internal.h:1032:10: note: in expansion of macro ‘GTEST_MESSAGE_’
return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure)
^
Downloads/gtest-1.7.0/unzipped/include/gtest/gtest_pred_impl.h:80:5: note: in expansion of macro ‘GTEST_FATAL_FAILURE_’
on_failure(gtest_ar.failure_message())
^
Downloads/gtest-1.7.0/unzipped/include/gtest/gtest_pred_impl.h:147:3: note: in expansion of macro ‘GTEST_ASSERT_’
GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \
^
Downloads/gtest-1.7.0/unzipped/include/gtest/gtest_pred_impl.h:166:3: note: in expansion of macro ‘GTEST_PRED_FORMAT2_’
GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_)
^
Downloads/gtest-1.7.0/unzipped/include/gtest/gtest.h:1993:3: note: in expansion of macro ‘ASSERT_PRED_FORMAT2’
ASSERT_PRED_FORMAT2(::testing::internal:: \
^
Downloads/gtest-1.7.0/unzipped/include/gtest/gtest.h:2011:32: note: in expansion of macro ‘GTEST_ASSERT_EQ’
# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
^
source/unit_test/test.cpp:182:5: note: in expansion of macro ‘ASSERT_EQ’
ASSERT_EQ(OK, rc);
我改成了ASSERT_TRUE(OK == rc)
,类似的乱七八糟的错误。
然后我将其更改为 EXPECT_EQ(OK, rc)
,它编译并运行得很好!
在我看来,这是 gtest 某处的错误。但想确认一下。
最佳答案
关于c++ - 可能是 gtest 错误 - ASSERT_EQ 和 ASSERT_TRUE 编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925131/
NoMethodError: undefined method `assert_true' 在 ruby 中使用测试单元运行测试时出现上述错误。测试单元 gem 和 rake 版本如下, test
当我使用 Gtest 中提供的 ASSERT_TRUE() 时,出现以下错误。返回类型与函数类型不匹配,在 VS 2010. 中带有下划线。 abc.h #include "gtest\gtest.h
我有用例场景。 List* pList = new List(); for (...) { Integer* pInt = new Integer(); ASSERT_TRUE(pInt !
NoMethodError:# 的未定义方法“assert_true” 这对我所有的断言都是一样的。测试运行但无法断言。 断言失败的样本测试 class Cwy001 < Test::Unit
我正在使用最新的 gtest。以下代码编译失败: Error_code rc = some_function(); ASSERT_EQ(OK, rc); Error_code 是一个枚举类型定义: t
我是一名优秀的程序员,十分优秀!