728x90
반응형

마지막인 Update를 테스트 하기 위해 코드를 추가해보자.

  describe("update", () => {

    it("should update ", () => {
      service.create({
        title: 'Test Movie',
        genres: ['test'],
        year: 2000
      });
      service.update(1, {title:"Updated Test"});
      const movie = service.getOne(1);
      expect(movie.title).toEqual("Updated Test");
    });
    
    it("should throw a NotFoundException", () => {
      try {
        service.update(999, {});
      }
      catch(e){
        expect(e).toBeInstanceOf(NotFoundException)
      }
    });

  });

 

테스트 결과를 확인해보면!

 

 

정상적으로 수행되었다.

728x90
반응형
728x90
반응형

계속해서 이번엔 Delete와 Create를 테스트 해보자.

 

  describe("deleteOne", () => {

    it("deletes a movie", () => {
      service.create({
        title:"Test Movie",
        genres: ['test'],
        year: 2000
      });
      const allMovies = service.getAll().length;
      service.deleteOne(1);
      const afterDelete = service.getAll().length;
      expect(afterDelete).toBeLessThan(allMovies);
    });

  });

 

한 개의 데이터를 삭제 했으니 기존의 것보다 개수가 줄었다는 것을 테스트한다.

404 error 까지 코드를 추가하고 테스트를 실행해보자.

 

  describe("deleteOne", () => {

    it("deletes a movie", () => {
      service.create({
        title:"Test Movie",
        genres: ['test'],
        year: 2000
      });
      const allMovies = service.getAll().length;
      service.deleteOne(1);
      const afterDelete = service.getAll().length;
      expect(afterDelete).toBeLessThan(allMovies);
    });
    it("should throw 404 error", () => {
      try {
        service.deleteOne(999);
      }
      catch(e){
        expect(e).toBeInstanceOf(NotFoundException)
      }
    })

  });

 

 

이처럼 테스트가 정상 작동하는 것을 볼 수 있다.

 

Create도 마찬가지로 추가하고 테스트를 진행해보자.

  describe("create", () => {

    it("should create a movie", () => {
      const beforeCreate = service.getAll().length;
      service.create({
        title: 'Test Movie',
        genres: ['test'],
        year: 2000
      });
      const afterCreate = service.getAll().length;
      expect(afterCreate).toBeGreaterThan(beforeCreate)
    })

  })

 

728x90
반응형
728x90
반응형

참조

https://nomadcoders.co/nestjs-fundamentals/lectures/1953

 

All Courses – 노마드 코더 Nomad Coders

초급부터 고급까지! 니꼬쌤과 함께 풀스택으로 성장하세요!

nomadcoders.co

 

pakage.json 파일을 보면 테스팅과 관련된 스크립트가 5가지 정도 있다.

 

 

먼저 jest는 자바스크립트를 아주 쉽게 테스팅하는 npm 패키지이다.

 

우리가 controller나 service를 만들 때, 이러한 파일들을 볼 수 있었는데

이것이 바로 테스트를 포함한 파일이다.

Nest.js에선 jest가 .spec.ts 파일들을 찾아볼 수 있도록 설정 되어 있다.

 

아래 명령어를 입력해보자.

$ npm run test:cov

 

 

그럼 이런식으로 테스트가 진행된 것을 확인할 수 있다. 이렇게 ts 파일들을 테스트 할 수 있다.

 

 

이번에는 유닛 테스팅을 해보자. 유닛테스팅은 모든 function을 따로 테스트하는 것이다.

예를들면 getAll() function 하나만 테스트하고 싶을 때 사용한다.

 

e2e 테스팅은 특정 링크로 가면 특정 페이지가 나와야하는 경우 사용한다.

728x90
반응형

+ Recent posts