我想知道,当稍后实际匹配参数和期望值时,它们是否超出了范围?像这样:
struct Object
{
// ...
};
struct TestFixture : public testing::Test
{
MOCK_METHOD1(handle, void(Object obj));
};
TEST_F(TestFixture, Basic)
{
{
Object obj; // = get different obj
EXPECT_CALL(*this, handle(obj));
}
{
Object obj; // = get different obj
EXPECT_CALL(*this, handle(obj));
}
{
Object obj; // = get different obj
EXPECT_CALL(*this, handle(obj));
}
// call handle 3 times
}
所有的3个obj
变量都将超出范围,EXPECT_CALL
也会在那里创建某种局部变量吗?这个测试在gtest中可以吗?谢谢
来自reference/matchers.html
除了
Ref()
,这些匹配器会复制值,以备以后修改或销毁。
所以你很好。