Does TDD mean not thinking about class design?
我正在制作一个角色扮演游戏,以取乐,并试图在开发过程中使用TDD。我看到的许多TDD示例都集中于首先创建测试,然后创建要通过测试所需的对象。
例如:
1 2 3 4 5 6 7 8 |
因此,基于此,我将创建字符类和适当的属性/方法。这看起来很好,但是我的课程设计真的应该从不断改进我的测试中出来吗?这是否比提前绘制出我的游戏可能需要的对象更好?例如,我通常会想到一个基本字符类,然后是子类,如向导、战士、theif。
或者是一种平衡的方法?其中一个是我规划出可能需要的类和层次结构,但首先编写测试来验证它们是否确实需要?
Should my class design really come out
of continually refining my tests?
"是的,是的。 </P >
Does TDD mean not thinking about class
design?
绝对的诠释。它是设计思维类均值在大学写作课程和测试你的旅行,你的代码。一流的设计,即插即用的冰在throughout红-绿-重构TDD的生命周期。 </P >
我认为你的缺失点TDD。TDD是不是关于写作测试,它的意思是你的类的设计testable。这自然引线到一个更好的设计和实施。 </P >
它听起来像你是做IT backwards。 </P >
你应该问的步骤: </P >
我认为它的一般assumed(甚至村的TDD的程序员是一purists)设计的应用写作测试的村庄已经知道什么是设计和建筑。此外,正是你能为自己的油漆的混乱和无政府状态编程到村abandonment写作测试的任何设计的原则。 </P >
因此,一个开发商,应用写作测试的第一"的观念已经有一个公平的东西,他的太空舱部结构会看样,这视觉指南的他,当他写他的冰试验。 </P >
我认为这是一个平衡的做法,把你需要的。第一个模型是在你的域名,因为没有他们,你是怎么知道试验吗? </P >
然后,你将可能创建存根或壳牌这些类,与空implementations最多,只是想让你写一些测试结构。 </P >
是的,那是你做的,你的测试案例的likely illuminate将需要新的方法/类/置业,是不是在原来的设计,但是discovered作为市场的价格。 </P >
TDD的冰是让你"测试驱动设计,包括你的类的设计。这是有价值的,因为这意味着prove试验是对我的代码"厂"。这是指你将风"和一个一流的设计方案,是一个制造厂,为opposed到A级设计一个程序,这可能或可能不工作。 </P >
TDD leans toward思维是以一流的设计和experimenting concretely以奔跑的代码比abstractly拉瑟与pencil和纸。 </P >
方法都是有用的。即使铁杆TDD zealots使用pencil和纸(或也许一块白板)在《纽约时报》,和bduf -了- alles类型会爆炸的"临时"病毒的原型。的问题,然后在你的照顾,护理到冰的情况下,ponderer或更多的手上吗? </P >
冰是TDD的设计。这么做,你将要求TDD的肯定是你的设计完全testable冰。 </P >
也,"平衡法"是国际海事组织(IMO)要走的路。你已经知道的高水平的建筑和TDD会驱动这个建筑是testable。 </P >
编辑: 尽管,如果你想现在到实践中诠释TDD会做的"平衡法"。在TDD模式下会做与"婴儿的步骤和可能编码的道场" </P >
(一)平衡的方法是要走的路。 </P >
然而,《平衡冰驱动村试验的需要。 </P >
你可以在地图上出可能的类和层次结构。但是,你将要驱动设计村(1)的可测性思维对写作和(2)的测试代码之前写太多。 </P >
即使你的测试方法对编译,你需要一些类的定义。他们不要工作,但他们要编译的。 </P >
在一些情况,你的类可以这么简单,你实际上写所有(或几乎所有)是第一位的。 </P >