gpt4 book ai didi

c++ - 在谷歌模拟中捕获回调的参数

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:13 26 4
gpt4 key购买 nike

我有一个对象有这样的方法:

mockObj.foo(cb);

其中 cb 是以下签名的函数:

void cb(vector<A> &, vector<B> &);

有什么方法可以捕获传递给 cb 的 2 个参数,以查看该函数是否执行了我希望它执行的操作?我希望 cb 被调用 N 次。

最佳答案

如果你想测试 Obj 类在做什么 - 分离单元测试 Obj 类,比如(当然我知道真正的 Obj::cb 没有清除输入——这只是一个例子):

TEST(ObjTest, shouldResetInput)
{
vector<A> aa(1);
vector<B> bb(1);
Obj objUnderTest;
objUnderTest.cb(aa, bb);
ASSERT_TRUE(aa.empty());
ASSERT_TRUE(bb.empty());
}

在使用 Obj 的其他对象中,将其作为 ObjMock 注入(inject)并仅检查此 cb 函数是否使用输入调用你期望 - 通过 Container Matchers 检查输入.如果你想在 Obj 的客户端中调用函数后更改输入 - 使用 Side Effect Actions .

关于c++ - 在谷歌模拟中捕获回调的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40290305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com