Cpputest:如何编译和使用expectNoCall?

时间:2016-12-23 10:11:30

标签: testing mocking cpputest

我写过语法:mock().expectNoCall("productionCode")正如Cpputest.org页面所说。但编译器说 mocksupport类不支持这种类型的订单。

test_RFID_Drv.c:322:9: error: ‘class MockSupport’ has no member named ‘expectNoCall’mock().expectNoCall("HAL_AS393x_ReadRegisters");

怎么用?我必须在标题中包含一些文件吗? 目前我有那些嘲笑:

/*! \include <CppUTest/CommandLineTestRunner.h> */
#include <CppUTest/CommandLineTestRunner.h>
/*! \include <CppUTest/TestHarness.h> */
#include <CppUTest/TestHarness.h> 
/*! \include <CppUTestExt/MockSupport.h> */
#include <CppUTestExt/MockSupport.h>

问题是我想忽略一个混凝土系统调用。我不想测试它。

1 个答案:

答案 0 :(得分:1)

Eugenia,你在'.c'文件中,mock().expectXX是'.cpp'文件的语法。

This是一个在.cpp文件中没有期望的工作示例。

如果您需要使用.c文件中的mock,请包含“MockSupport_c.h”并确保使用正确的c语法,请阅读标题here

如果您不想使用“_c”标头的语法,请将您的mocks文件设为.cpp,并将export "C"链接器修饰符添加到您的模拟函数中,例如我{{3} }。