C++ 谷歌测试C代码,无析构函数警告
我目前正在用google test测试我的C++ 谷歌测试C代码,无析构函数警告,c++,c,testing,googletest,C++,C,Testing,Googletest,我目前正在用google test测试我的C代码,它运行良好。我用fff.h框架来伪造我的C代码 问题不在于测试本身,而在于编译时收到的编译器警告,每次测试都会收到警告: class 'theTest_specificTest_Test' defines a copy constructor and a copy assignment operator but does not define a destructor, a move constructor or a move assignmen
C
代码,它运行良好。我用fff.h
框架来伪造我的C
代码
问题不在于测试本身,而在于编译时收到的编译器警告,每次测试都会收到警告:
class 'theTest_specificTest_Test' defines a copy constructor and a copy assignment operator but does not define a destructor, a move constructor or a move assignment operator [cppcoreguidelines-special-member-functions]
我的测试类如下所示:
DEFINE_FFF_GLOBALS;
FAKE_VALUE_FUNC(int, a_func, const char *, const char *);
...
class theTest : public testing::Test
{
public:
// some variables here
virtual void SetUp()
{
RESET_FAKE(a_func);
FFF_RESET_HISTORY();
}
virtual void TearDown()
{
}
};
TEST_F(theTest, theThest_specificTest)
{
a_func_fake.return_val = 1;
int ret = some_func();
ASSERT_EQ(ret, 0);
}
测试如下所示:
DEFINE_FFF_GLOBALS;
FAKE_VALUE_FUNC(int, a_func, const char *, const char *);
...
class theTest : public testing::Test
{
public:
// some variables here
virtual void SetUp()
{
RESET_FAKE(a_func);
FFF_RESET_HISTORY();
}
virtual void TearDown()
{
}
};
TEST_F(theTest, theThest_specificTest)
{
a_func_fake.return_val = 1;
int ret = some_func();
ASSERT_EQ(ret, 0);
}
尤其是当套件名称与测试名称如此相似时。这可能会导致意外错误(这可能是对您的问题的一种解释)。问题似乎不在于我的代码,而在于谷歌测试本身。不过,我还是听从了你的建议,将来不会有问题。