Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails “测试”;复杂的;操作:类似风险的棋盘游戏部署_Ruby On Rails_Unit Testing_Tdd - Fatal编程技术网

Ruby on rails “测试”;复杂的;操作:类似风险的棋盘游戏部署

Ruby on rails “测试”;复杂的;操作:类似风险的棋盘游戏部署,ruby-on-rails,unit-testing,tdd,Ruby On Rails,Unit Testing,Tdd,我用RubyonRails开发了一个类似于风险的游戏,我必须开发一个程序,在角色之间分配(随机)区域,并将角色的单位分配(随机)到他们的区域 游戏有42个区域,可容纳5个角色。3个字符接收8个区域,2个字符接收9个区域。每个角色都有一个由25个单元组成的集合(9个区域的角色有27个单元)可在分配的区域中分派。每个区域必须至少有一个单位 我的模型如下。如果需要,我可以换 用户 游戏 面积 角色,将用户绑定到游戏,持有剩余的单位进行部署 区域,将一个角色链接到一个区域,保持该区域的单位数量 下面

我用RubyonRails开发了一个类似于风险的游戏,我必须开发一个程序,在角色之间分配(随机)区域,并将角色的单位分配(随机)到他们的区域

游戏有42个区域,可容纳5个角色。3个字符接收8个区域,2个字符接收9个区域。每个角色都有一个由25个单元组成的集合(9个区域的角色有27个单元)可在分配的区域中分派。每个区域必须至少有一个单位

我的模型如下。如果需要,我可以换

  • 用户
  • 游戏
  • 面积
  • 角色,将用户绑定到游戏,持有剩余的单位进行部署
  • 区域,将一个角色链接到一个区域,保持该区域的单位数量
下面是我的想法

  • 我应该将这两个行动(地区派遣和部队派遣)分开,即使这两个行动表现较差
  • 为了更容易测试,输出状态应该与输入相同:随机部分应该来自外部
对于这种情况,您会写什么断言? 我使用默认的Rails 3测试堆栈:Test::Unit和fixture


谢谢

您需要的断言似乎非常简单:

  • 游戏有42个区域

  • 5个字符

  • 3个字符接收8个区域,2个字符接收9个区域

  • 每个角色有一个25个单位的池

等等

我的模型如下。如果需要,我可以换

  • 用户
  • 游戏
  • 面积
  • 角色,将用户绑定到游戏,持有剩余的单位进行部署
  • 区域,将一个角色链接到一个区域,保持该区域的单位数量
下面是我的想法

  • 我应该将这两个行动(地区派遣和部队派遣)分开,即使这两个行动表现较差
  • 为了更容易测试,输出状态应该与输入相同:随机部分应该来自外部
作为旁注,我认为您在前期设计方面已经做得够多了。TDD应该能够使代码的设计不断涌现和发展,因此,虽然您可以首先坚持这些预先建立的规则,但在编写测试时,您不应该害怕对它们进行更改,甚至完全删除它们


测试您的实现的最佳方法是先进行第一次测试,然后再进行另一次测试。。。并逐步发现最好的设计似乎是什么,而不是从一开始就尝试建立一个完美的模型。

难道某种玩家选择的东西不是有用的吗

可能是一个方法Player selectPlayer()或Player ID。 然后你可以用某种循环选择器存根做确定性选择。。。
您选择的第一个国家是玩家1,第二个是玩家2、3、1、2、3等。

从未玩过风险,但我想知道初始随机定位在多大程度上可以被编码为某种递归方法。如果可以的话,测试将很容易:在设置最后一个位置(N-1)之前,使用表示步骤的夹具,定位方法的结果将属于有限的集合。你这里有一个规格。