【发布时间】:2010-03-10 17:01:04
【问题描述】:
我很喜欢单元测试的想法,但我在将它应用到游戏编程时遇到了麻烦。游戏是高度有状态的,并且代码通常不会将自己分解为不同的单元。根据我的经验,大多数函数都会改变状态而不是返回值。
考虑像playerJump(height) 这样的简单操作。我很想有一个测试套件来检查各种各样的案例,以确保跳跃总是按预期工作。但是,此函数可能不会返回任何值,并具有player.velocity.y = -height 和checkCollisions(player) 的副作用。我想不出一个清晰的单元测试来围绕这个构建。
单元测试在高度有状态的应用程序(如游戏)中不可行吗?单元测试的优势是否如此之大以至于值得对游戏进行功能性编程?
更新:
Games from Within 有一系列关于在游戏中使用测试驱动开发的深入文章。我强烈推荐给任何对这个主题感兴趣的人。这是第一篇文章:
http://gamesfromwithin.com/stepping-through-the-looking-glass-test-driven-game-development-part-1
【问题讨论】:
-
对于 UnitTest++,请访问 github.com/unittest-cpp/unittest-cpp。其他所有内容都已过时。
标签: unit-testing