我使用Ruby on Rails开发一个类似风险的游戏,我必须开发一个程序来在字符之间调度(随机)区域并发送(随机)字符'单位到他们的领土。
该游戏有42个区域,共5个字符。 3个字符可获得8个地区,2个字符可获得9个地区。每个角色有25个单位的池(27个有9个地区的单位)在分配的地区之间派遣。每个地区必须至少有一个单位。
我的模型如下。如果需要,我可以改变它。
现在这是我的想法。
你会为这种情况写什么断言? 我使用默认的Rails 3测试堆栈:Test :: Unit和fixture。
The code is available on GiitHub
谢谢!
答案 0 :(得分:1)
你需要的断言看起来很简单:
游戏有42个地区
包含5个字符。
3个字符可获得8个地区,2个字符可获得9个地区。
每个角色都有25个单位的
依此类推......
我的模型如下。如果需要,我可以改变它。
- 用户;
- 游戏;
- 区域;
- 角色,将用户绑定到游戏,保留要部署的其余单位;
- 区域,将角色链接到某个区域,并保留该区域的单位数。
现在这是我的想法。
- 我应该将这两项行动(地区派遣和单位派遣)分开,即使其效率较低;
- 为了更容易测试,输出状态应该与相同的输入相同:随机部分应该来自外部。
作为旁注,我认为你在这里的前期设计已经走得太远了。 TDD应该让你的代码设计出现并发展,所以当你最初可以坚持这些预先建立的规则时,你不应该害怕对它们进行修改,甚至在你编写测试时完全消除它们
测试驱动器实现的最佳方法是先进行第一次测试,然后进行另一次测试......逐步发现最佳设计似乎是什么,而不是尝试从一开始就建立一个完美的模型。
答案 1 :(得分:-1)
某些PlayerSelector不会有用吗?
可能是玩家selectPlayer()或玩家ID的方法。 然后你可以使用某种CyclicSelector存根进行选择确定性... 您选择的第一个国家/地区为player1,第二个为播放器2,3,1,2,3等。