【问题标题】:Limitations of using a C unit testing framework for testing embedded C++ code使用 C 单元测试框架测试嵌入式 C++ 代码的限制
【发布时间】:2013-02-13 11:11:26
【问题描述】:

我想尝试使用单元测试框架来测试我用 C、C++ 或有时 IEC 语言编写的代码。

所以我的问题是 - 使用 C 编写的单元测试框架来测试 C++ 代码是否有一些很大的限制会限制我使用它?


背景信息: 我尝试了各种可用的开源框架——它们是用 C/C++ 编写的。最后我得出结论,用 C 编写的“嵌入式单元”和用 C++ 编写的“CppTest”是候选者(主要是因为测试必须在嵌入式平台上执行)。但在选择获胜者之前,我陷入了这个非常基本的问题。据我所知,我没有发现很大的限制。 除了:在 C++ 单元测试框架中:我可以让 testClass 成为可测试类的朋友并测试它的私有属性/功能(这对我来说并不重要)。抱歉,如果这是一个愚蠢的问题 - 我刚刚开始探索测试世界。

【问题讨论】:

  • 使用 C++ 编写的单元测试框架来测试 C 代码有什么问题?我正在使用 gtest 执行此操作,它对我来说很好......
  • 查看这里了解更多信息stackoverflow.com/questions/91384/…
  • 如果您担心要在资源有限的嵌入式目标上运行单元测试,您应该在问题中明确说明。但我也让 gtest 在一个(资源不那么有限的)嵌入式平台上运行。
  • @g-makulik 我没有说我在使用 C++ 编写的单元测试框架时遇到了问题。此外,我在资源有限的定制嵌入式平台上运行 cpptest / embeddedunit 也没有遇到问题。我的问题正是我上面提到的 - 没有冒犯:)

标签: c++ c unit-testing testing


【解决方案1】:

一个例子是,您将很难使用严格的 C 框架测试由您的被测代码生成的预期 C++ 异常。我确信这种方法还有其他漏洞,但这取决于您的 C++ 代码。

除非您有充分的理由,否则 CppTest 似乎是您的两位候选人的合乎逻辑的选择。我已在 cmets 中链接到一个可能涵盖您错过的选项的问题。

【讨论】:

  • 谢谢,我确实尝试了几个选项,包括 (CppUnit,CxxTest,CppTest,Catch,Fructose,Cutest,Cute,testape,maestra,easyunit,cut,gtest,cpputest,yaffut)。而 CppTest 和嵌入式单元是候选者,主要是因为嵌入式平台(我们自己的 IDE、RTOS 和硬件(PLC))的限制。
  • @SteveTownsend,只要类似'C'的单元测试函数是用C++编译的,那么OP应该可以在单元测试函数内尝试/捕获?
猜你喜欢
  • 2020-05-06
  • 2010-09-10
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多