Frontend/E2E

E2E (End-to-End)

wam 2024. 7. 15. 18:21

 

๐Ÿง E2E (End-to-End)

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ „์ฒด์ ์œผ๋กœ ๊ฒ€์ฆ ํ•˜๋Š” ๊ฒƒ

 

 

E2E (End-to-End)

  • ํ…Œ์ŠคํŠธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ „์ฒด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ด ํ…Œ์ŠคํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ, ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ•จ๊ป˜ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  • ๊ฐ„๋‹จํžˆ ๋งํ•ด, E2E ํ…Œ์ŠคํŠธ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ „์ฒด์ ์œผ๋กœ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

์žฅ์ 

  • ์‹ ๋ขฐ์„ฑ: ์‹ค์ œ ์‚ฌ์šฉ์ž ํ๋ฆ„์„ ํ…Œ์ŠคํŠธํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ๋Œ€๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ณด์žฅํ•œ๋‹ค.
  • ํ†ตํ•ฉ ํ™•์ธ: ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ํ†ตํ•ฉ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋‹จ์ 

  • ์‹œ๊ฐ„ ์†Œ์š”: ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณต์žก์„ฑ: ์„ค์ • ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์˜ˆ์ œ ์ฝ”๋“œ ์„ค๋ช…

  1. NestJS ํ…Œ์ŠคํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ๋ชจ๋“ˆ ๋กœ๋“œ
    • @nestjs/testing, supertest, AppModule ๋“ฑ์„ ๊ฐ€์ ธ์˜จ๋‹ค.

  2. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์„ค์ •
    • beforeEach ๋ธ”๋ก์—์„œ NestJS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

  3. ํ…Œ์ŠคํŠธ ์‹คํ–‰:
    • ๊ฐ ํ…Œ์ŠคํŠธ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฒ€์ฆํ•œ๋‹ค.

describe("UserModule (e2e)", () => {
  let app: INestApplication;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      imports: [AppModule],
    }).compile();

    app = module.createNestApplication();
    await app.init();
  });

  // ์ถ”๊ฐ€์ ์ธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋“ค์„ ์ž‘์„ฑํ•˜์—ฌ E2E ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰
});