使用测试驱动开发时俄罗斯方块的验收测试

dev*_*ium 6 c# java tdd acceptance-testing

我想尝试使用TDD实现俄罗斯方块游戏.

根据我在阅读成长面向对象软件时所理解的,在测试指导下,我应该从定义什么是我的验收测试开始.如果我是对的,那么在进行TDD时的验收测试就像用例一样被定义.

定义一个良好的第一个验收测试非常重要,它将作为App的"骨架",所以它应该很简单.

我选择以下2个验收测试作为我的第一个实施:

  1. 游戏开始,玩家关闭它.
  2. 游戏开始,玩家什么都不做.他最终输了.

这两个验收测试是否是良好的开始测试?接下来的验收测试会有什么好处?我能想到类似的东西

  • 游戏开始,只有方块下降.玩家将它们全部放置在线条总是"爆炸"的状态下,使得在100个游戏步骤之后的游戏仍未结束.

但我觉得这有点尴尬,因为在真正的俄罗斯方块游戏中,你总会有不同的碎片落下,这就是验收测试应该是什么.

另外,我觉得有点想尝试在做(2)时一次性实现所有内容,我认为在实施第二次验收测试时我不会假装.我想这个想法只是让游戏在6-7之后实现,而不是在第二个.我对吗?

谢谢

Bry*_*Ash 3

我首先会考虑游戏场地,以及在一些已定义的块被丢弃的帧数之后它看起来是什么样子。例如使用黄瓜

Scenario: dropping the first square
  Given an empty 10x2 field

  When a square is dropped at column 4
  And 48 frames have passed

  Then the field should contain a square at (4, 1)

  When 48 frames have passed
  Then the field should contain a square at (4, 2)

Scenario: Dropping a square on a full stack
  Given an empty 10x2 field
  And a square at (4, 2)

  When a square is dropped at column 4
  And 48 frames have passed

  Then the game should be over
Run Code Online (Sandbox Code Playgroud)

如果您喜欢 Cucumber 功能规范的外观,您可能想尝试Cuke4Nuke for .Net 或Cuke4Duke for Java。