2016-04-06 5 views
0

私はディレクティブをテストしようとしていますが、ディレクティブを模倣するとディレクティブの途中の行がエラーになります。どのJavascript NaN角度単位テストを実行できないようにする

$scope.getIterations = function (its) { 
     return new Array(its); 
    }; 

戻り引数その戻りはNaNとして理にかなっている

RangeError: Invalid array length 

を実行しているから、私のテストを防ぐことができます。

私は を呼び出すことができると考えました。var = [1,2,3]; $ scope.getIterations(its)

beforeEachの内部では、エラーコードと同じことは何も差異がありませんでした。

多分私はこのコードを誤解しているかもしれませんが、単体テストでこれを回避する方法がわかりません。

答えて

1

例外はかなり自明です:あなたはArrayときnew Array() expects variadic arguments as items to insert or a length to padを渡している:

$scope.getIterations = function(its) { 
    return new Array(its.length); 
}; 

あなただけにしたいと思うようにそれはあなたがここで何をしようとして正確にはっきりしていない...ようですそのまま引数を返す:

$scope.getIterations = function(its) { 
    return its; 
}; 
1

newと関係があるようです。あなたは、新しい配列をインスタンス化しようとしている場合は、代わりに、コンストラクタの配列リテラルを使って配列のインスタンスを作成してみてください。

$scope.getIterations = function (its) { 
     return [its]; 
}; 

が、他の人が指摘したように、それはあなたが戻りたいまさに不明確ですので、その配列の場合。ちょうどreturn its;です。

+0

テストを実行してもNaNが返されることは間違いありません。 – Winnemucca

+0

'its = [1,2,3]'この関数が '[[1,2,3]]' –

+0

@SUJEETJAISWALを返すなら、私は知っていますが、彼が望んでいたかもしれないと思いました。 – inspired

1

アレイ構造はカンマは、それが唯一の数値IDを持っている場合、それははるかに長さの配列を使用して生成されることを除いて、配列の要素となるであろう値を分離取りその要素として未定義です。

new Array("a") // ["a"] 
new Array("a","b")//["a","b"] 
new Array(3,2) //[3,2] 
new Array(3) //[undefined x 3] 

あなたのケースでは、その値が配列の場合、変数自体を返すことができます。

を返します。

関連する問題