我有这种测试设置:
for (...)
{
std::unique_ptr<MockObject> mock = std::make_unique<MockObject>();
const SomeObject* validObject = ...;
EXPECT_CALL(*mock, method(_)).WillRepeatedly(Return(validObject));
}
这是否保证将validObject
本地对象返回到当前范围for
?如果是这样,如果在for
?之外声明模拟,它的行为是否相同?
对于此示例,for 循环的每次迭代都会生成一个新的MockObject
mock
.
该EXPECT_CALL....WillRepeatedly
行将仅将该模拟对象的此方法的返回值设置为指向的任何validObject
值。
如果在 for 之外声明模拟,它的行为是否相同?
是的,至少这部分测试会。不同之处在于该mock
对象将在 for 循环的所有迭代之间共享,并将在迭代之间保持其状态,我会仔细检查测试是否假定循环的每次迭代都获得一个新的模拟对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句