gpt4 book ai didi

c++ - 在windows中使用gcc+gtest+mockcpp,mock根本不起作用

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

当我以 MSVC 格式构建 mockcpp 库 mockcpp.lib 并在 MSVC 中构建我的单元测试项目时,它运行良好。

当我将 mockcpp 的 CMake 生成器指定为 Unix Makefile 时,将 native 编译器指定为 cygwin64/bin/gcc.exe 和 cygwin64/bin/g++.exe 并设置 -DMOCKCPP_XUNIT=gtest -DMOCKCPP_XUNIT_HOME=googletest-release/googletest,我在构建 mockcpp 后得到了 libmockcpp.a。

但是当我在 gcc 中构建我的单元测试项目时,mock 函数根本不起作用。我使用 GDB 对其进行调试,发现它仍然会遇到我模拟的 mult_num 函数。

使用gcc编译mockcpp时是否需要添加宏或其他选项?

谢谢。

示例测试代码:

#include <gtest/gtest.h>
#include <mockcpp/mokc.h>

int add_num(int a, int b)
{
return a + b;
}

int mult_num(int a, int b)
{
return a * b;
}
int add_mult(int a, int b)
{
int sum = add_num(a,b);
if (sum == mult_num(a,b))
{
return 0;
}
else
{
return 1;
}
}

TEST(add_mult, test001)
{
int ret;


MOCKER(mult_num)
.expects(once())
.will(returnValue(-1));

ret = add_mult(2, 2);
EXPECT_EQ(1, ret);

}

最佳答案

我也遇到过这个问题:操作系统是Ubuntu内核版本:3.13.0-107g++版本为:5.4.0

出现这个问题的原因是编译时开启了编译优化,需要在编译选项中关闭优化。

g++ -00(第一个是字母O,第二个是数字0)

关于c++ - 在windows中使用gcc+gtest+mockcpp,mock根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44304596/

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