use*_*270 0 ruby testing ruby-on-rails
我正在尝试使用fixture来添加更复杂的测试数据,以便使用Flex中的前端测试特定的场景.我不确定这是用rails做正确的方法.我的rails应用程序是一款纸牌游戏,我试图测试的"更复杂的测试数据"是各种卡片组合.
例如,我想建立一个测试游戏,其中玩家1手中有牌B和C,我特意将牌B和C添加到玩家的手中.
我有玩家,游戏和用户的基本设备,已经存在一段时间并且工作正常.我试图在游戏夹具中添加以下erb代码,以调用Game.start方法,并且正在获取
NoMethodError: undefined method `games' for main:Object
Run Code Online (Sandbox Code Playgroud)
灯具代码片段是:
four:
id: 4
num_players: 3
turn_num: 0
status_id: 1
<% game_four = games(:four).find
game_four.start
%>
Run Code Online (Sandbox Code Playgroud)
game_four = games(:four).find
Run Code Online (Sandbox Code Playgroud)
游戏方法仅存在于测试用例中,而不存在于fixture中.您应该查询数据库或使用关系.这只是一个例子.
four:
id: 4
num_players: 3
turn_num: 0
status_id: 1
<% Game.find_by_name(four).start %>
Run Code Online (Sandbox Code Playgroud)
而且,这不是真正适合这种命令的地方.固定装置不是"开始游戏".您应该将此命令移动到其他位置,可能是在安装块内的专用测试用例中.
编辑:
我在这里复制了几天前在原始答案中发布的评论,其中包含新Rails数据库种子功能的链接:http://ryandaigle.com/articles/2009/5/13/what-s-new-in-边轨数据库播种
这是Yehuda Katz在他的回答中解释的那个,绝对是解决这个问题的最佳方法.
| 归档时间: |
|
| 查看次数: |
1195 次 |
| 最近记录: |