在 Google 测试框架中,如何期待一个函数调用或另一个函数调用?
In Google Test Framework, how to expect a function call OR another function call?
如何将两个 EXPECT_CALL
宏放入逻辑或中?由于外部因素,我的测试可能会导致调用 on_found()
或调用 on_not_found()
的函数。对于我的测试范围是相同的,因为重要的是已经进行了搜索。但我无权访问内部 search()
函数并希望调用它。
您可以在测试中添加一些布尔变量,并在调用 on_found()
或 on_not_found()
时使它们为真,并在测试结束时检查变量的逻辑或。例如,
auto onFoundCalled = false;
auto onNotFoundCalled = false;
EXPECT_CALL(mockObj, on_found())
.Times(AtMost(1)).WillRepeatedly(InvokeWithoutArgs([&onFoundCalled]
{
onFoundCalled = true;
}));
EXPECT_CALL(mockObj, on_not_found())
.Times(AtMost(1)).WillRepeatedly(InvokeWithoutArgs([&onNotFoundCalled]
{
onNotFoundCalled = true;
}));
RunSomeCode();
ASSERT_TRUE(onFoundCalled || onNotFoundCalled);
如何将两个 EXPECT_CALL
宏放入逻辑或中?由于外部因素,我的测试可能会导致调用 on_found()
或调用 on_not_found()
的函数。对于我的测试范围是相同的,因为重要的是已经进行了搜索。但我无权访问内部 search()
函数并希望调用它。
您可以在测试中添加一些布尔变量,并在调用 on_found()
或 on_not_found()
时使它们为真,并在测试结束时检查变量的逻辑或。例如,
auto onFoundCalled = false;
auto onNotFoundCalled = false;
EXPECT_CALL(mockObj, on_found())
.Times(AtMost(1)).WillRepeatedly(InvokeWithoutArgs([&onFoundCalled]
{
onFoundCalled = true;
}));
EXPECT_CALL(mockObj, on_not_found())
.Times(AtMost(1)).WillRepeatedly(InvokeWithoutArgs([&onNotFoundCalled]
{
onNotFoundCalled = true;
}));
RunSomeCode();
ASSERT_TRUE(onFoundCalled || onNotFoundCalled);