Skip to main content
์‹ค์ œ ํ”„๋กœ๋•์…˜ ๋ฐ์ดํ„ฐ๋ฅผ Fixture DB๋กœ ๊ฐ€์ ธ์™€์„œ ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

Fixture ๋กœ๋”ฉ ๊ฐœ์š”

์‹ค์ œ ๋ฐ์ดํ„ฐ

ํ”„๋กœ๋•์…˜ ๋ฐ์ดํ„ฐ ํ˜„์‹ค์ ์ธ ํ…Œ์ŠคํŠธ

๊ด€๊ณ„ ์ž๋™ ํ•ด๊ฒฐ

BelongsTo ์ž๋™ ์ถ”์  ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ ํ•จ๊ป˜

์ค‘๋ณต ๋ฐฉ์ง€

ID ๊ธฐ๋ฐ˜ ๊ด€๋ฆฌ ์•ˆ์ „ํ•œ ๊ฐ€์ ธ์˜ค๊ธฐ

๊ฐ„ํŽธํ•œ ๋ช…๋ น์–ด

ํ•œ ์ค„๋กœ ์‹คํ–‰ ์ž๋™ ๋™๊ธฐํ™”

pnpm sonamu fixture import

ํ”„๋กœ๋•์…˜ DB์˜ ํŠน์ • ๋ ˆ์ฝ”๋“œ๋ฅผ Fixture DB๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

ํŒŒ๋ผ๋ฏธํ„ฐ:
  • entityId: Entity ์ด๋ฆ„ (์˜ˆ: โ€œUserโ€, โ€œPostโ€)
  • recordIds: ๊ฐ€์ ธ์˜ฌ ๋ ˆ์ฝ”๋“œ ID ๋ฐฐ์—ด (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)

์˜ˆ์ œ

์ž‘๋™ ์›๋ฆฌ

1. ๋ ˆ์ฝ”๋“œ ์ถ”์ถœ

2. ๊ด€๊ณ„ ์ž๋™ ์ถ”์ 

BelongsTo ๊ด€๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ถ”์ ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
๋‚ด๋ถ€ ๋™์ž‘:

3. ์ž๋™ ๋™๊ธฐํ™”

import ํ›„ ์ž๋™์œผ๋กœ Fixture DB โ†’ Test DB ๋™๊ธฐํ™”๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ์˜ˆ์ œ

์‚ฌ์šฉ์ž ๊ฐ€์ ธ์˜ค๊ธฐ

๊ฒŒ์‹œ๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ

๋ณต์žกํ•œ ๊ด€๊ณ„ ์ฒ˜๋ฆฌ

HasMany ๊ด€๊ณ„

ManyToMany ๊ด€๊ณ„

์ค‘๋ณต ์ฒ˜๋ฆฌ

INSERT IGNORE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ˆœํ™˜ ์ฐธ์กฐ ๋ฐฉ์ง€

๋ฐฉ๋ฌธํ•œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”์ ํ•˜์—ฌ ์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค

1. ์ตœ์†Œ ๋ฐ์ดํ„ฐ

2. ๋Œ€ํ‘œ ์ผ€์ด์Šค

3. fixture.ts์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ

๋ฌธ์ œ ํ•ด๊ฒฐ

๋ ˆ์ฝ”๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ

ํ•ด๊ฒฐ:
  • ํ”„๋กœ๋•์…˜ DB์— ํ•ด๋‹น ID๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
  • ์˜ฌ๋ฐ”๋ฅธ Entity ์ด๋ฆ„ ์‚ฌ์šฉ

๊ถŒํ•œ ์˜ค๋ฅ˜

ํ•ด๊ฒฐ:

๋„ˆ๋ฌด ๋งŽ์€ ๋ฐ์ดํ„ฐ

์ฃผ์˜์‚ฌํ•ญ

Fixture ๋กœ๋”ฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ: 1. ์ตœ์†Œ ๋ฐ์ดํ„ฐ: ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๋ ˆ์ฝ”๋“œ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ 2. ๊ด€๊ณ„ ํ™•์ธ: BelongsTo๋Š” ์ž๋™, HasMany๋Š” ์ˆ˜๋™ 3. ์ค‘๋ณต ์•ˆ์ „: INSERT IGNORE๋กœ ์ค‘๋ณต ๋ฐฉ์ง€ 4. ์ˆœํ™˜ ์ฐธ์กฐ: ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋จ 5. ๊ถŒํ•œ ํ™•์ธ: Fixture DB์— ์“ฐ๊ธฐ ๊ถŒํ•œ ํ•„์š”

๋‹ค์Œ ๋‹จ๊ณ„

ํ…Œ์ŠคํŠธ DB

ํ…Œ์ŠคํŠธ DB ์„ค์ •

Fixture ์ƒ์„ฑ

fixture.ts ์ž‘์„ฑํ•˜๊ธฐ

Fixture ๋™๊ธฐํ™”

Fixture โ†’ Test DB

ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

ํ…Œ์ŠคํŠธ ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ