0

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

マップをテストし、レールで機能を減らすことは可能ですか? 簡単な例です。しかし、私のプロジェクトの機能はより複雑で、保守が難しいと感じています。

アドバイスをいただきありがとうございます。

4

1 に答える 1

0

データベースで行われる関数のテストの場合、テスト方法は次のとおりです。

  1. データの基本セットを作成する
  2. 関数を実行します
  3. 結果を予想と比較します

したがって、この場合、sum / average/total_scoreが期待どおりであることを確認する必要があります。

于 2012-06-28T14:54:38.803 に答える