โฌ๏ธ Main Note
https://docs.google.com/document/d/1WBrt2IYSRRvwc3PvPCJ9x24PPU4T05zha4bZ06cFL0o/edit
File Address : aaa.spec.ts
// 1. ํ๊ฐ ํ
์คํธ ํ๊ธฐ
it('๋ํ๊ธฐ ํ
์คํธ', () => {
// test๋ฅผ ์คํํ๊ณ ์ถ์ ํจ์๋ฅผ ์ ์ผ๋ฉด ๋จ
const a = 1;
const b = 2;
expect(a + b).toBe(3);
});
// 2. ์ฌ๋ฌ๊ฐ ๋ฌถ์ด์ ํ๋ฐฉ์ ํ
์คํธ ํ๊ธฐ
describe('๋์ ํ
์คํธ ๊ทธ๋ฃน', () => {
// ์ฝ๋ฐฑํจ์ ์์ฑ
it('๋ํ๊ธฐ ํ
์คํธ', () => {
// test๋ฅผ ์คํํ๊ณ ์ถ์ ํจ์๋ฅผ ์ ์ผ๋ฉด ๋จ
const a = 1;
const b = 2;
expect(a + b).toBe(3);
});
it('๊ณฑํ๊ธฐ ํ
์คํธ', () => {
// test๋ฅผ ์คํํ๊ณ ์ถ์ ํจ์๋ฅผ ์ ์ผ๋ฉด ๋จ
const a = 3;
const b = 4;
expect(a * b).toBe(12);
});
});
// 3. ์ํ ๊ตฌ๋งคํ๊ธฐ ํ
์คํธ ์์
describe('์ํ ๊ตฌ๋งค ํ
์คํธ', () => {
beforeEach(() => {
// ์ผ๋จ ๋ก๊ทธ์ธ์ ํ๋์ง ๊ฒ์ฆํ๋ ค๊ณ ํ๋๊ฑฐ์
// ๊ทผ๋ฐ ์ด๋ ๋ฌธ์ ๋ ํ
์คํธ์ผ์ด์ค๋ ๋ชจ๋ ๋
๋ฆฝ์ ์
// ๋ก๊ทธ์ธ์ด ๊ฒ์ฆ ๋์ด์ผ์ง ์๋ ๊ฒ์ฆ๋ค์ด ์คํ์ด ๋๋๋ฐ ์ด๊ฑด ์๋๋๊ฑฐ์ (ํ
์คํธ๋ ๋
๋ฆฝ์ ์ผ๋ก ์คํ์ด ๋จ ์ฐ๊ฒฐ์ด ๋์ด์์ง ์์)
// ๊ทธ๋์ ์ด๋๋ it๋ฅผ ์ฐ๋๊ฒ ์๋๋ผ beforeEach๋ฅผ ์จ์ค์ผํ๋๊ฑฐ์
//
// ***** beforeEach๋ก ํด์คฌ์ผ๋ฉด ์ด์ ์ด ๋ฐ์ ๋ก๊ทธ์ธ ๋ก์ง ์์ฑ *****
// ๊ทธ๋ฌ๋ฉด ๋ฐ์ ๋ ๊ฒ์ฆํ๊ธฐ๋ ์ํ ๊ตฌ๋งคํ๊ธฐ ํ
์คํธ๋ ๋ก๊ทธ์ธ ํ
์คํธ๊ฐ ์ฑ๊ณตํด์ผ ํ
์คํธ ์ผ์ด์ค๊ฐ ์คํ์ด ๋๋๊ฑฐ์
});
it('๋ ๊ฒ์ฆํ๊ธฐ', () => {
// ๋ ๊ฒ์ฆํ๋ logic ์ฐ๊ณ ๊ฒฐ๊ณผ ๋ฐํ
const result = true; // ๋์ด ์ถฉ๋ถํ๋ค๊ณ ๊ฐ์
expect(result).toBe(true);
});
it('์ํ ๊ตฌ๋งคํ๊ธฐ', () => {
const result = true;
expect(result).toBe(true);
});
// ๋ง์ผ๋ฉด ๋ง์์๋ก ๊ผผ๊ผผํ๊ณ ๋ํ
์ผํ๊ฒ ๊ฒ์ฆ์ด ๊ฐ๋ฅํจ ๊ทผ๋ฐ ๋๋ฌด ๋ง์ด ํ๋ฉด ๊ทธ๊ฑฐ๋๋ก ๋ฌธ์ ๊ฐ ์๊ธธ์๋ ์์
// ์ฒ์์๋ ๊ธฐ๋ณธ์ ์ธ ํ
์คํธ ํ๋๊ฐ๋ง ํด๋๊ณ ์ ์ ๋ํ
์ผํ๊ฒ ์ถ๊ฐํด ๋๊ฐ๋๊ฒ ์ข์ (ํต์ฌ์ ์ฒ์๋ถํฐ ํ
์คํธ์ฝ๋๋ฅผ ๋๋ฌด ์๋ฒฝํ๊ฒ ์ง์ง ์๋๊ฒ)
});
File Address : aaa2.spec.ts
import { AppService } from './app.service';
import { AppController } from './app.controller';
describe('AppController', () => {
let appController: AppController;
let appService: AppService;
beforeEach(() => {
appService = new AppService();
appController = new AppController(appService);
});
describe('getHello', () => {
// describe์์์๋ ์ธ๋ถ์ ์ธ๊ฑธ ๊ฒ์ฆํ ์ ์์
// app.controller์ ์๋ API์ค getHello๋ฅผ ๊ฒ์ฆํด๋ณด์ !!
it('์ด ํ
์คํธ์ ๊ฒ์ฆ ๊ฒฐ๊ณผ: "Hello World!"๋ฅผ ๋ฆฌํดํด์ผํจ', () => {
// To do so, getHello API must be executed (so first declare AppController in "beforeEach" section)
const result = appController.getHello();
expect(result).toBe('Hello World!');
});
});
});
Array Rotation
function rotateArray(belt, sec) {
for (let i = 0; i < sec; i++) {
belt.unshift(belt.pop());
}
return belt;
}
rotateArray([1,2,3,4,5], 3) // [ 3, 4, 5, 1, 2 ]