私は、Express.jsアプリケーションで小さなモジュールをテストするためにMochaを使用しています。このモジュールでは、私の関数の1つが配列を返します。私は配列が指定された入力に対して正しいかどうかをテストしたい。私はこのようなので、やっている:Mochaを使ったJavascriptテストでassert.equalとassert.deepEqualの違いは?
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
これを実行すると、私は、次のアサーションエラーを取得:
AssertionError: ["555","867","5309"] == ["555","867","5309"]
私はassert.deepEqual
に私のテストを変更する場合ただし、テストはうまく合格します。それは===
対==
のケースだった場合、私は思っていたが、私はNode.jsのコマンドラインに
[1,2,3] === [1,2,3]
を入力すると、私はまだ偽得ます。
アレイは他の値のやり方を比較しないのはなぜですか(例:1 == 1
)? assert.equalとassert.deepEqualの違いは何ですか?
「deepEqual()」の説明あなたが実際にそれを見いだすまで、比較の中であなたが考えているものではありません。 – brandonscript