1
단위 테스트에 대해 배우려고하고 있는데 Ben Alman이이 overview을 발견했습니다. 슬라이드 23에서 그는 객체 {a: 1}
을 포함하는 변수 actual
이 객체 자체와 어떻게 다른지를 보여줍니다. 그게 무슨 뜻 이죠? 그들은 같은 가치가 아닌가? 객체가 어떻게 다른가요?왜이 QUnit 테스트가 실패합니까?
test("deepEqual", 7, function() {
var actual = {a: 1};
equal( actual, {a: 1}, "fails because objects are different");
deepEqual(actual, {a: 1}, "passes because objects are equivalent");
deepEqual(actual, {a: "1"}, "fails because '1' !== 1");
var a = $("body > *");
var b = $("body").children();
equal( a, b, "fails because jQuery objects are different");
deepEqual(a, b, "fails because jQuery objects are not equivalent");
equal( a.get(), b.get(), "fails because element arrays are different");
deepEqual(a.get(), b.get(), "passes because element arrays are equivalent");
});
'=='JS (실제로는 대부분의 언어)에서 객체를 비교하는 방법을 잘 알고 있습니까? 그 대답은 바로 그 뒤를 따른다. –
이 말은 바보 같아서 미안하지만 이해가 안갑니다. 나는'=='vs'==='에 대해 읽었으며''new String ("String")'== "String"'사실이고''new String ("String")'=== 같은 것을 이해합니다. "문자열"은 거짓입니다. 그러나 사물과 함께, 그것은 단지 나에게 이해가 가지 않습니다. 나는 타입을 놓쳤는지를보기 위해'console.log (실제 타입);을 사용했다. 그러나 그것들은 같은 타입이다. 다른 SO 응답에서 누군가 물건을 두 장의 빈 종이와 비교했습니다. 그것들은 두 종이 ('===')이지만, 다른 {a : 1}이 새로 생성 된 객체의 또 다른 인스턴스이므로 동일한 종이가 아닙니다 ('=='). – user2986242
내가 어떻게 생각해야합니까? – user2986242