【问题标题】:Test mongodb map, reduce function in rails在rails中测试mongodb map,reduce函数
【发布时间】:2012-06-28 12:21:14
【问题描述】:

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

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

是否可以在 rails 中测试 map 和 reduce 功能。 这是一个简单的例子。但是我的项目功能比较复杂,我觉得很难维护。

感谢您提供任何建议。

【问题讨论】:

    标签: ruby-on-rails mongodb testing mapreduce


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,这就是我现在所做的,我可以在这个例子中测试“组”方法。但是在这种情况下为map和reduce函数编写javascript,我认为很难阅读和维护。是的,我可以为 map 和 reduce 函数提供一堆 cmets,但我想知道是否有任何解决方案可以测试 map 和 reduce 函数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    相关资源
    最近更新 更多