【问题标题】:It is possible/productive enough to TDD in C++ projects?在 C++ 项目中进行 TDD 是否可能/足够高效?
【发布时间】:2010-07-21 13:39:28
【问题描述】:

我想知道你们中是否有人在 C++ 项目中使用 TDD,以及与 C# 和 Java 等托管语言相比,它的性能如何。 你们使用什么框架来自动化 C++ 项目的测试?

【问题讨论】:

标签: c++ unit-testing tdd testability


【解决方案1】:

Boost testGoogle Test 这两个有用的 C++ 测试框架似乎还没有被提及。

【讨论】:

    【解决方案2】:

    可以使用任何语言进行测试驱动开发。您需要适合该语言的测试工具和方法,并且可能需要为您的项目定制测试基础架构。

    我发现 CppUnit(至少 1.x)是一个非常糟糕的框架——它似乎在 C++ 语言中使用 Java/C# 习惯用法,并且不支持 STL 构造。

    如果您想要一个测试驱动开发(C 语言)的好例子,请查看 Wine 项目——http://test.winehq.org/data/ 显示了他们在不同版本的 Windows、Wine 以及对 Wine 存储库的不同提交的测试结果。他们有自己的自定义测试基础架构。

    【讨论】:

    • 请注意,尽管人们继续使用 CppUnit,但原作者 (Michael Feathers) 进行了完全重写,在有效地使用遗留代码中进行了简要说明。他修改后的方法变得聪明了使用宏,您可以在 CppUTest、UnitTest++ 和 googletest 中看到。
    【解决方案3】:

    我最近从使用 TDD 开发的 C# 项目转移到使用 C++ 的项目。我有点害怕它,但我发现使用 TDD 编写 C++ 更令人愉快,并且代码比我记忆中的过去(非 TDD)使用 C++ 的经验更健壮。

    我们正在使用 Google 测试。它不像 NUnit/MbUnit 那样容易使用,但它似乎工作得很好。还有一个谷歌模拟框架http://code.google.com/p/googlemock,不过我还没用过。

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 2016-12-08
      • 2013-08-12
      • 1970-01-01
      • 2018-05-28
      • 2011-03-29
      • 2016-09-17
      • 2017-04-01
      相关资源
      最近更新 更多