mocha는 Node.js 테스트 프레임워크이다.
equal
은 일치하는지 보는 함수입니다. ===
연산자와 동일하게 평가됩니다.
describe("expect를 통해 동일한지 테스트", function () {
it(".equal를 통해 일치여부 판단", function () {
let value = 2.toString();
expect(value).to.equal(2); //type이 다르므로 실패
});
it(".equal를 통해 일치여부 판단", function () {
let value = 2.toString();
expect(value).to.equal("2"); //성공
});
}
참조가 아닌 배열 또는 객체의 요소를 비교할때 사용합니다.
it("참조 자료형의 데이터 비교 테스트", function () {
const student = ["jungsu", "hong", "kim"];
//테스트 실패
expect(student).to.equal(["jungsu", "hong", "kim"]);
}
it("참조 자료형의 데이터 비교 테스트", function () {
const student = ["jungsu", "hong", "kim"];
//테스트 성공
expect(student).to.deep.equal(["jungsu", "hong", "kim"]);
}
This 키워드의 경우 기본적으로 자기 자신을 나타내며, 상황에 따라 전역 객체인 Window를 가르키기도 합니다.
const person = {
name: "jungsu",
age: 19,
getInfo: function () {
return [this.name, this.age];
},
};
console.log(person.getInfo()); // ["jungsu", 19]
Rest Parameter
와 arguments
모두 모든 파라미터를 받아와 배열로 저장하는 것 처럼 보이지만, arguments
는 배열 모양의 객체
입니다.
function getRestParameter(...args) {
return args;
}
function getArguments() {
return arguments;
}
const restParameter = getRestParameter("a", "b", "c");
const arguments = getArguments("a", "b", "c");
console.log(typeof restParameter); //object
console.log(typeof arguments); //object
console.log(Array.isArray(restParameter)); //true
console.log(Array.isArray(arguments)); //false