c ++ googlemocks:获取未初始化调用的堆栈跟踪

BЈо*_*вић 6 c++ mocking stack-trace googlemock

模拟类看起来像这样:struct MockClass {MOCK_METHOD0(foo,void()); };

如果我忘记在模拟对象上设置预期的调用,我得到这样的东西:

GMOCK WARNING:
Uninteresting mock function call - returning directly.
    Function call: foo()
Stack trace:
Run Code Online (Sandbox Code Playgroud)

并且堆栈跟踪为空.

那么,要获得堆栈跟踪还需要做些什么?

BЈо*_*вић 9

在这里描述:

您可以使用--gmock_verbose = LEVEL命令行标志控制Google Mock告诉您的数量,其中LEVEL是一个包含三个可能值的字符串:1.info
:Google Mock将打印所有信息性消息,警告和错误(最详细) ).在此设置下,Google Mock还会记录对ON_CALL/EXPECT_CALL宏的任何调用.
2.警告:Google Mock会同时打印警告和错误(不太详细).这是默认值.
3.错误:Google Mock只会打印错误(最不详细).

或者,你可以从你的测试中调整该标志的值,像这样:
::testing::FLAGS_gmock_verbose = "error";

使用信息警告级别将打印回溯

  • 对我不起作用,堆栈跟踪仍为空. (4认同)