c# - TDD 是否意味着不考虑类设计?

标签 c# unit-testing tdd

我正在制作一款有趣的角色扮演游戏,并尝试在开发过程中使用 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、Theif 等子类。

或者是一种平衡的方法?我在其中绘制出可能需要的类和层次结构,但首先编写测试以验证它们是否确实需要?

最佳答案

Should my class design really come out of continually refining my tests?

是的。

Does TDD mean not thinking about class design?

绝对不是。这意味着在编写测试和其余代码的过程中考虑类设计。类设计在整个红-绿-重构 TDD 生命周期中发挥作用。

关于c# - TDD 是否意味着不考虑类设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2149369/

相关文章:

c# - 将字符串列表转换为数据表

c# - 如何在超时的WP7中创建后台线程?

php - mock 用 andReturn 返回新对象

c++ - 有没有办法检测升压单元测试二进制文件中有哪些测试

ruby-on-rails-3 - BDD/TDD (Rails/Rspec) 入门

c# - Dapper:单元测试 SQL 查询

c# - 如何使用我的可执行文件链接安装 Kinect Runtime?

c# - 使用辅助方法创建动态 lambda

unit-testing - TDD - 在一个空项目中创建一个新类,以在添加依赖项时明确依赖项

python - 如何使用 TDD 创建现有对象的数据库表示?