728x90
반응형

이제 function을 테스트해보자.

 

movies.service.spec.ts

import { Test, TestingModule } from '@nestjs/testing';
import { MoviesService } from './movies.service';

describe('MoviesService', () => {
  let service: MoviesService;

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

    service = module.get<MoviesService>(MoviesService);
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });

  describe("getAll", () => {
    it("should be return an array", () => {
      const result = service.getAll();
      expect(result).toBeInstanceOf(Array);
    })
  })

});

 

이런 식으로 하단 부분에 테스트 코드를 추가해보면, getAll 함수가 array를 반환하는지에 대해 테스트를 해볼 수 있다.

 

getOne부분도 추가해보자

  describe("getOne", () => {
    it("should be return a movie", () => {
      service.create({
        title:"Test Movie",
        genres: ['test'],
        year: 2000
      });
      
      const movie = service.getOne(1);
      expect(movie).toBeDefined()
    })
  })

 

 

자 이제 npm run test를 해보면, 

 

테스트가 정상적으로 수행되는 것을 확인할 수 있다.

 

 

이번엔 404 error를 테스트해보자.

  it("should throw 404 error", () => {
    try {
      service.getOne(999);
    }
    catch(e){
      expect(e).toBeInstanceOf(NotFoundException)
    }
  })

코드를 추가하고 npm run test를 실행한다.

 

 

테스트가 정상 작동하는 것을 확인할 수 있다.

728x90
반응형

+ Recent posts