在我的gtest框架中,我嘲笑了一些函数并编写了一些测试用例。我发现在许多测试用例中,我一直使用相同的模拟函数和EXPECT_CALL。所以,我只是想知道我是否可以将这些常见的模拟EXPECT_CALL放在一个地方并简单地调用它们,因此行数变少,测试用例看起来更简单。
我尝试将它们放在一个函数中并尝试调用该函数,但它给了我许多编译问题。有人有任何想法吗?
答案 0 :(得分:0)
从Google Mock doc relative to GTest,无法将EXPECT_CALL宏委托给函数。
更准确地说,
重要提示:Google Mock需要在此之前设置预期 调用mock函数,否则行为未定义。在 特别是,你不能交错EXPECT_CALL()和调用 模拟功能。
答案 1 :(得分:0)
EXPECT
调用需要在测试用例或测试夹具中。您可以使用测试夹具获得所需的结果。
class MyTest : public ::testing::test
{
MyTest // can use ctor
{
EXPECT_CALL(mock, ...);
}
SetupA() // or can use a member function
{
EXPECT_CALL(mock, ...);
EXPECT_CALL(mock, ...);
}
MockObject mock;
};
TEST_F(MyTest, TestOne)
{
EXPECT_CALL(mock, ...);
// do something - two expectations are set
}
TEST_F(MyTest, TestTwo)
{
SetupA();
// do something - three expectations are set
}