Jest 1 Matcher
Jest 1 - Matcher
๊ณผ์ ์ ํ์ ์ค๋นํ๋ฉด์ ๊ฒธ์ฌ๊ฒธ์ฌ test library์ ๋ํด ๋ณต์ตํ๊ณ ์ ๋ฆฌํ๊ธฐ๋ก ํ๋ค
Jest์์๋ ๊ฐ๋จํ๊ฒ ๋น๊ตํ๋ฉฐ ๊ฐ์ด ์์ํ ๊ฒฐ๊ณผ๊ฐ ๋ง๋์ง ํ์ธํ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค ์ด๋ฅผ Matcher๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ๋ค์ํ ํ์ ์ Matcher๋ฅผ ์ ๊ณตํ๋ค. ํ ์คํธ ํจ์๋ it, test ๋์ค ํ๊ฐ๋ฅผ ์ฌ์ฉํ๋ค. ๋๊ฐ์ ํจ์์ ๊ธฐ๋ฅ์ ๋์ผํ๊ณ ๊ฐ๋ฐ์๊ฐ ์ํ๋๋ฐ์ ์ด์ ์ ๋๊ฒฝ์ฐ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ ์ ์๋ค ์๋ฅผ ๋ค์ด it should โฆ ์ฒ๋ผ ํน์ ์กฐ๊ฑด์ ๋ถํฉํ์ง ํ ์คํธํ ๋ it์ ์ฐ๊ฑฐ๋ ๋์, ๊ธฐ๋ฅ์ ํ ์คํธ๋ฅผ ํ ๊ฒฝ์ฐ test๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค
test('์ค๋ช
', () => {
// ํ
์คํธ ์ฝ๋
});
// ๋๋
it('์ค๋ช
', () => {
// ํ
์คํธ ์ฝ๋
});
Matcher
toBe
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋น๊ตํจ์ js์์ == ์ฐ์ฐ์์ ๋์ผ
test('๊ธฐ๋ณธ ๋น๊ตํจ์ ==', () => {
expect(1).toBe(1);
});
toEqual
์ฐธ์กฐ๊ฐ ์๋ ๊ฐ์ ๋น๊ต, ์ฃผ๋ก 2๊ฐ์ ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ๋น๊ต ์ ํ ๋ค๋ฅธ ๊ฐ์ฒด ๋ฐ ์ธ์คํด์ค๋ผ๋ ๊ฐ์ผ๋ก ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ค๊ณ ์ธ์
test('๋น๊ตํจ์', () => {
const data = { one: 1 };
data['two'] = 2;
expect(data).toEqual({ one: 1, two: 2 });
// js๋ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ ๋ ๊ฐ์ด ์๋ ์ฐธ์กฐ๋ก ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅด๋ค๊ณ ๋์ด => ์ฝ์์์๋ false๋ก ๋์จ๋ค
console.log(data === { one: 1, two: 2 });
// ์๋๋ false๋ก ๋์จ๋ค
test('๊ธฐ๋ณธ ๋น๊ตํจ์ ===', () => {
expect({ one: 1, two: 2 }).toBe({ one: 1, two: 2 });
});
});
toStrictEqual
๊ฐ์ฒด ๋ด์ ๊ฐ์ ๊น์ ๋น๊ต๋ฅผ ์งํ ํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ๊ฒฝ์ฐ false๋ฅผ return
- ๊ฐ์ฒด ๋ด์ undefined ์์ฑ์ด ์๊ฑฐ๋ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ
- ๊ฐ์ฒด์ ์์ฑ์ undefined๊ฐ ์๋ ๊ฒฝ์ฐ
- ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ
- ๊ฐ์ฒด์ ์์ฑ ์์๊ฐ ๋ค๋ฅผ ๋
test('๊ฐ์ฒด๊ฐ ๊ฐ์ง ์์ฑ์ ์ ํ์ฑ๊น์ง ๊ฒ์ฌ', () => { const data = { one: 1, three: undefined }; data['two'] = 2; expect(data).toStrictEqual({ one: 1, two: 2 }); });
toBeDefined
๋น๊ตํ๊ณ ์ ํ๋ ๊ฐ์ด undefined์ธ์ง ๊ฒ์ฌ
test('๋ณ์์ ๊ฐ์ด undefined ์ธ์ง ํ์ธ', () => {
let test = undefined;
expect(test).toBeDefined();
});
toBeTruthy / toBeFalsy
false, true ๊ฐ ๊ฒ์ฌ
test('bool๊ฐ ํ์ธ', () => {
expect(true).toBeTruthy();
expect(false).toBeFalsy();
});
toMatch
์ ๊ท ํํ์ ๊ฒ์ฌ
test('์ ๊ท ํํ์', () => {
expect('test@naver.com').toMatch(/.naver.com/);
});
toHaveProperty
key, value๊ฐ ๊ฒ์ฌ
test('๊ฐ์ฒด์ ํค, ๊ฐ ๊ฒ์ฌ', () => {
const test = {
test1: 1,
test2: 2,
};
expect(test).toHaveProperty('test1', 1);
});
toHaveLength, toContain
๋ฐฐ์ด ๊ธธ์ด, ๋ฐฐ์ด ์์๊ฐ ์๋์ง ๊ฒ์ฌ
test('๋ฐฐ์ด ๊ด๋ จ', () => {
const animals = ['lion', 'cat', 'dog', 'elephant', 'giraffe'];
expect(animals).toHaveLength(5);
expect(animals).toContain('dog');
});
toThrow
throw๊ฐ ์คํ ๋๋์ง ๊ฒ์ฌ
function compileAndroidCode(os) {
if(os !== 'android')
throw new Error('you are using the wrong os');
}
test('์์ธ ์ฒ๋ฆฌ', () => {
// param์ ๊ฐ๊ณผ error ๋ฉ์ธ์ง๊ฐ ์ผ์นํ๋ ์ง๋ ์ฒดํฌ
expect(() => compileAndroidCode('ios')).toThrow('you are using the wrong os');
});