当前位置:首页 > 网站旧栏目 > 学习园地 > 设计软件教程 > 每天一剂Rails良药之Creating Dynamic Test Fixtures

每天一剂Rails良药之Creating Dynamic Test Fixtures
2010-01-14 07:08:35  作者:  来源:
Rails的fixture文件在传递给YAML解析之前先用ERB解析,这样一来我们就可以使用Ruby代码动态生成测试数据,而不用一条数据一条数据的写了:
Java代码 复制代码
  1. <% 1.upto(50do |number| %>   
  2. child_post_<%= number %>:   
  3.   id: <%= number + 3 %>   
  4.   title: This is auto-generated reply number <%= number %>   
  5.   body: We're on number <%= number %>   
  6.   created_at: 2006-01-30 08:03:56  
  7.   updated_at: 2006-01-30 08:03:56  
  8.   <%# Randomly choose a parent from a post we've already generated -%>   
  9.   parent_id: <%= rand(number - 1) + 1 %>   
  10.   user_id: <%= rand(5) + 1 %>   
  11. <% end %>  

我们还可以定义一些helper方法:
Java代码 复制代码
  1. <%   
  2.   def today   
  3.     Time.now.to_s(:db)   
  4.   end   
  5.   def next_week   
  6.     1.week.from_now.to_s(:db)   
  7.   end   
  8.   def last_week   
  9.     1.week.ago.to_s(:db)   
  10.   end   
  11. post_from_last_week:   
  12.   id: 60  
  13.   title: pizza   
  14.   body: Last night I had pizza. I readlly liked that story from AWDWR.   
  15.   created_at: <%= last_week %>   
  16.   updated_at: <%= last_week %>   
  17.   user_id: 1  
  18. post_created_in_future_should_not_display:   
  19.   id: 61  
  20.   title: Prognostication   
  21.   body: I predict that this post will show up next week.   
  22.   created_at: <%= next_week %>   
  23.   updated_at: <%= next_week %>   
  24. updated_post_displays_based_on_updated_time:   
  25.   id: 62  
  26.   title: This should show up as posted today.   
  27.   body: blah blah blah   
  28.   created_at: <%= last_week %>   
  29.   updated_at: <%= today %>   
  30.   user_id: 2  

安徽新华电脑学校专业职业规划师为你提供更多帮助【在线咨询