C++和适当的TDD

Cos*_*ert 7 c# c++ tdd performance

嗨!我最近尝试C#在整个项目中开发一个小型项目,我们的团队使用了Test-Driven-Development(TDD)技术(xunit, moq).

我真的认为这很棒,因为(当配对时C#)这种方法允许在编码时放松,在投射时放松并在重构时放松.我怀疑所有这些 - 这TDD实际上简化了编码过程,并且,它允许(最终,对我来说)使用更少的脑细胞工作得到相同的结果.

在那之后,我尝试使用TDD配对C++(我使用Google TestGoogle Mock库),并且,我不知道为什么,但我实际上认为TDD在快速应用程序开发方面是退后一步.

我有一段时间不得不花费大量时间考虑我的测试,建立适当的模拟,重建它们并在我的显示器上发誓.

而且,我显然不能问"我做错了什么?" 或"我的方法有什么问题?",因为我不知道该描述什么.但如果有任何人习惯TDDC++(也可能C#),请告诉我如何正确地做到这一点.

框架建议,架构方法,简单的编码建议 - 如果您有经验TDD & C++,请回复.

jal*_*alf 4

我认为 TDD 在 C++ 中比在 C# 中更难实现。与静态多态性相比,缺乏反射以及通常(并且通常是有充分理由的)不愿意依赖动态多态性(接口和继承)确实使得模拟许多类变得更加困难。

C++ 有一些非常聪明的单元测试框架,但它们的聪明之处主要在于它们试图绕过语言限制。

TDD 在动态语言中效果最好。这是使用 Python 工作的好方法。它在 C# 中是可行的(它不是动态的,但具有全面的反射功能)

在 C++ 中,这常常是有问题的。这并不意味着它不能或不应该完成,但是当你这样做时,预计必须付出更多努力。有时,完全使用另一种方法可能会更好。