테스트코드를 작성하게 되면 개발을 하면서 이건 됐네~ 하고 넘어가는 부분들도
개발을 이어가다가 꼬이는 경우가 있습니다.
이때, 사람의 감이 아닌 테스트코드를 작성해서 돌리면 안정적이게 코드가 잘 돌아가는지 꼬였는지 확인할 수 있으므로 많은 회사,사람들이 선호하지만 프로젝트 기한이나 혹은 귀찮아서 안하는 경우도 있다고 하고
테스트코드를 짠 후에 작업이 아닌 작업을 하고 테스트코드를 짜는 방식도 있다고합니다.
- 리액트의 영향이 크겠지만 가장 핫한 테스트 도구
- Easy Setup
고친 파일만 빠르게 테스트 다시 해주는 기능 등- Snapshot Testing
컴포넌트 테스트의 중요한 역할을 하는 스냅샷
describe("expect test", () => {
it("37 to equal 37", () => {
expect(37).toBe(37);
})
it("{age : 39}", () => {
expect({age : 39}).toEqual({age : 39})
// 값이 객체여서 위와 타입이 맞지 않으니 toEqual을 사용한다.
})
it(".toHaveLength", () => {
expect("hello").toHaveLength(5);
});
it(".toHaveProperty", () => {
expect({name : "mark"}).toHaveProperty("name");
// name이 있는지 확인하고 값이 맞는지까지 확인해준다.
expect({name : "mark"}).toHaveProperty("name","mark");
});
it(".toBeDefined", () => {
expect({name : "mark"}.name).toBeDefined();
//name이 있고 그 name이 언디파인드인지 확인하기
});
it(".toBeFalsy", () => {
expect(0).toBeFalsy();
expect("").toBeFalsy();
expect(null).toBeFalsy();
expect(undefined).toBeFalsy();
expect(NaN).toBeFalsy();
});
it(".toBeGreaterThan", () => {
expect(10).toBeGreaterThan(9)
//9보다 커야한다.
});
it(".toBeGreaterThanOrEqual", () => {
expect(10).toBeGreaterThanOrEqual(10)
});
it(".toBeInstanceOf", () => {
class foo {}
expect(new Foo()).toBeInstanceOf(Foo)
// 에러를 상속받은 에러의 자식이 에러타입인지 자식에러타입인지 용의하게 쓰인다
});
})
not~ 도 있지만 의미는 같더라고 의도한바에 따라서 작성하는것이니 의도대로 작성해주면 된다고 합니다.
위보다 좋은방법은