我测试c ++代码的驱动开发,我觉得很尴尬的事实是我需要为每个类创建许多文件,例如:
iread.h read.h read.cpp mockread.h mockread.cpp testread.h testread.cpp
并将这些文件添加到我项目中的不同文件夹(过滤器)中。
结果,我在很大程度上abondand cpp文件。然而,这打破了单元测试应该尽可能快地构建的规则。所以如果我只能加快其他方面的发展,我希望停止这样做。
为了达到这一点,当我在C ++中使用测试驱动开发时,由于家务管理开销,我真的很头疼。使用python时我没有同样的问题。
我最近做的一个改进是使用谷歌模拟并从他们的界面自动创建模拟。所以这肯定是一种改进。
然而,我觉得我应该能够通过使用插件来进一步减少开销,这些插件会自动为我在编写特定类时所需的所有类创建存根。这样的插件存在吗?关于Eclipse,VS 2005,VS 2008和VS 2010,开发这样的插件会很困难(对不起,但我必须不时在不同的环境中工作)。
另一个问题是我需要做的导航量,以便在Project Explorer中为测试中的给定类找到类(模拟,测试等)(因为它在VS中调用)。我的一个想法是以这种方式停止在项目资源管理器中对文件进行分组:
+interfaces +namespaceA iread.h +headers +namespaceA read.h +source +namespaceA read.cpp +mocks +namespaceA mockread.h mockread.cpp +tests +namespaceA testread.h testread.cpp
而是这样做:
+namespaceA read.cpp read.h readi.h readmock.cpp readmock.h readtest.cpp readtest.h
这将在解决方案资源管理器中将与特定类关联的文件组合在一起。这是一个好主意吗?你是怎么做的?在readi.h文件中有一个IRead接口会很奇怪...... Michael Feathers写道他根本不使用I但我更喜欢使用它...我的绝大多数接口只有一个实现类与他们联系。
如何在磁盘上组织项目?
还有其他提示吗?你也头痛吗?
谢谢,
百里
答案 0 :(得分:2)
不幸的是,使用C ++,'标题和模块'事情不会很快消失。
我对源/模拟/测试文件问题的提示是: