我正在开发一个角色扮演游戏,为了好玩,尝试在开发过程中使用TDD。我看到的许多TDD示例都侧重于先创建测试,然后创建所需的对象以使测试通过。
例如:
[Test]
public void Character_WhenHealthIsBelowZero_IsDead()
{
// create default character with 10 health
Character character = new Character();
character.SubtractHealth(20);
Assert.That(character.IsAlive, Is.EqualTo(false));
}
所以基于这个,我将创建角色类和相应的属性/方法。这看起来很好,但我的类设计是否真的应该源自不断完善我的测试呢?这比事先映射游戏所需的可能对象更好吗?例如,我通常会考虑一个基本的Character类,然后是像Wizard、Fighter、Thief这样的子类。还是采用平衡的方法才是正确的途径?首先编写测试以验证它们实际上是否需要,然后再映射出可能需要的类和层次结构?