测试mongodb map,减少rails中的功能

时间:2012-06-28 12:21:14

标签: ruby-on-rails mongodb testing mapreduce

当我在rails中使用mongoid mapreduce时,我会通过字符串传递map并减少函数。例如

def group
  Order.collection.map_reduce(map, reduce, :out => 'output_collection')
end

def map
  "function() 
   {
      var key = {game_id: this.game_id, year: this.date.getFullYear()};
      emit(key, {count: 1, score: this.score}); 
   }"
end

def reduce
  "function() 
   {
     var result = {sum: 0, total_score: 0, average: 0};
     values.forEach(function(value)
     {
       result.sum += value.count;
       result.total_score += value.score;
     });
   }"
end

是否可以测试地图并减少轨道中的功能。 这是一个简单的例子。但我的项目功能更复杂,我觉得很难维护。

感谢您对任何建议的帮助。

1 个答案:

答案 0 :(得分:0)

对于在数据库中进行的函数测试,您的测试方法是:

  1. 创建基本数据集
  2. 运行功能
  3. 将结果与预期的
  4. 进行比较

    因此,在这种情况下,您需要确保sum / average / total_score符合您的预期。