2016-11-10 7 views
0

以下のコードは概略です。表示されているように、jsからのリターンを得るには、それぞれの "マップ"関数に対して複数のリターンが必要です。複数の「マップ」を持つ関数にMocha jsを使用してテストする

モカを使ってこの機能をテストするにはどうすればよいですか? つまり、テスト目的の値を取得するために複数のリターンを配置することはできません。そのようなリターンが前記関数の実際の実装を妨害するからです。

は、だから私は、実装のために不必要なリターンを避けるために必要がありますが、テストのための同じ複数のリターンを必要とする。..

提案してください?

var array = ["a","b","c"], 
 
    array1 = ["1","2","3"], 
 
    array2 = [], 
 
    returnVar; 
 
function test() { 
 
    return ("done") 
 
    array.map(function(data) { 
 
    return ("done") 
 
    array1.map(function(datum){ 
 
     array2.push(datum) 
 
     return("done") 
 
    });  
 
    }); 
 
} 
 
returnVar = test(); 
 
alert(returnVar)

答えて

0

これは、現在の形でテストを作成するために、したがって、それは困難で、テスト可能なコードではありません。

mapはデータ変換に使用されるため、データ変換を入力値と出力値の関数に分離します。その機能をテストすることは、入力を提供すること、機能を呼び出すこと、出力を検証することの問題である。

+0

返信いただきありがとうございます。それは考えを与えるだろう.. –

0

メソッドをスタブすることはできますが、より良い方法は、mapに渡される関数を@luboskrnacとして孤立してテストすることです。

関連する問題