2021-08-25 TIL
Facts (사실, 객관)
- Jest랑 친해지는 중.
- 자바스크립트 기초가 많이 부족한 거 같아 공부를 시작했다.
Feelings (느낌, 주관)
- 과제를 하긴 했는데 또 마음에 안 든다... 더 열심히 해야겠다.
- JS 문법을 공부해야겠다는 생각이 들었다.
Findings (배운 점)
test 작성하기 (jest)
- test / it: 테스트 하나를 작성할 때 사용하는 키워드이다.(하나의 테스트 단위)
test('socket connect test', (done) => {
socket.on('connect', () => {
done();
});
});
- describe: describe 라는 키워드를 사용하여 여러 테스트 케이스를 묶을 수 있다.
describe('socket.io test', () => {
beforeAll(() => {
...
});
afterAll(() => {
...
});
test('socket connect test', (done) => {
...
});
test('[EMIT] \'enter_room\' event test', (done) => {
...
});
});
jest 더 알아보기
- 아래의 Methods들은 모두 scope가 있다. 전역에 쓰면 모든 테스트에 적용되고 하나의 describe안에 넣으면 그 describe안에 있는 test에만 적용된다. 예시는 위의 코드와 같다.
afterAll(fn, timeout): 모든 테스트가 끝나고 한번 실행된다.
afterEach(fn, timeout): 하나의 테스트가 끝날 때 마다 매번 실행된다.
beforeAll(fn, timeout): 모든 테스트가 시작하기 전에 한번 실행된다.
beforeEach(fn, timeout): 하나의 테스트가 시작하기 전에 매번 실행된다.
- Jest의 Mock 함수는 함수에 전달된 콜백이 호출되었는지 또는 콜백 함수를 트리거 해야 하는 이벤트가 바인딩된 콜백을 트리거 할 때 호출된 콜백을 테스트하는 데 사용할 수 있습니다 .
toBeInTheDocument
<span data-testid="html-element"><span>Html Element</span></span>
<svg data-testid="svg-element"></svg>
expect(
getByTestId(document.documentElement, 'html-element'),
).toBeInTheDocument()
expect(getByTestId(document.documentElement, 'svg-element')).toBeInTheDocument()
expect(
queryByTestId(document.documentElement, 'does-not-exist'),
).not.toBeInTheDocument()
toHaveAttribute
- 주어진 요소에 속성이 있는지 확인.
<button data-testid="ok-button" type="submit" disabled>ok</button>
const button = getByTestId('ok-button')
expect(button).toHaveAttribute('disabled')
expect(button).toHaveAttribute('type', 'submit')
expect(button).not.toHaveAttribute('type', 'button')
expect(button).toHaveAttribute('type', expect.stringContaining('sub'))
expect(button).toHaveAttribute('type', expect.not.stringContaining('but'))
- jest 참고 사이트
https://velog.io/@velopert/tdd-with-react-testing-library
https://github.com/testing-library/jest-dom#tohaveattribute
https://testing-library.com/
Affirmation(자기 선언)
- 어렵다고 포기하지 말고 계속 노력하자!!
Author And Source
이 문제에 관하여(2021-08-25 TIL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kokoball0/2021-08-25-TIL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)