【发布时间】:2011-03-30 09:12:58
【问题描述】:
我做 C++ 代码的测试驱动开发,我觉得尴尬的一件事是我需要为每个类创建许多文件,例如:
iread.h 读.h 读取.cpp 模拟阅读.h 模拟读.cpp testread.h testread.cpp并将这些添加到我项目中的不同文件夹(过滤器)中。
因此,我在很大程度上放弃了 cpp 文件。然而,这打破了单元测试应该尽可能快地构建的规则。因此,如果我只能加快其他方面的开发,我希望停止这样做。
直截了当地说,当我在 C++ 中进行测试驱动开发时,由于管家的开销,我真的很头疼。使用 python 时我没有同样的问题。
我最近进行的一项改进是使用 google mock 并从它们的界面自动创建 mock。所以这肯定是一种改进。
但是我觉得我应该能够通过使用插件来进一步减少开销,这些插件会在 tdding 特定类时为我需要的所有类自动创建存根。有这样的插件吗?对于Eclipse、VS 2005、VS 2008 和VS 2010,开发这样的插件会不会很困难(对不起,但我有时不得不在不同的环境中工作)。
另一个问题是,为了在 Project Explorer(在 VS 中调用它)中的给定类的测试中查找类(模拟、测试等),我需要进行大量导航。我的一个想法是停止以这种方式在项目资源管理器中对文件进行分组:
+接口 +命名空间A iread.h +标题 +命名空间A 读.h +来源 +命名空间A 读取.cpp +嘲笑 +命名空间A 模拟阅读.h 模拟读.cpp +测试 +命名空间A testread.h testread.cpp改为这样做:
+命名空间A 读取.cpp 读.h 准备好了 readmock.cpp readmock.h 读取测试.cpp 读取测试.h这将在解决方案资源管理器中将与特定类关联的文件组合在一起。这是一个好主意吗?你是怎么做事的?在 readi.h 文件中有一个 IRead 接口会很奇怪...... Michael Feathers 写道,他根本不使用 I 但我更喜欢使用它......我的绝大多数接口只有一个实现类与他们相关联。
您如何在磁盘上组织您的项目?
还有其他提示吗?你也头疼吗?
谢谢,
巴里
【问题讨论】:
标签: c++ visual-studio eclipse unit-testing tdd