tdd

개발자 일상

인프랩 퇴근길밋업 백엔드 테스트코드 후기

🐳 인프랩 7월 퇴근길 밋업 #백엔드 테스트코드인프랩에서 진행하는 퇴근길 밋업에 매달 지원을 했는데 번번이 실패 ... ㅠ특히나 사이드 프로젝트는 정말 가고 싶었는데 ...하지만 굴하지 않고 7월 퇴근길 밋업 #백엔드 테스트코드에도 지원 !개발자라면 정말 필요한 주제이기도 하고 회사에 도움이 될 만한 얘기가 또 없을까 하는 마음에 정말 너무 가고 싶었다.결과는 !! 당.첨. 비록 .... 인프콘은 떨어졌지만 ㅠㅠㅠㅠ 퇴근길 밋업을 보내주시려고 그랬나 보다.회사에도 퇴근길 밋업 간다고 자랑도 엄청 하고 테스트 코드에 관해 궁금한 것들도 준비를 해서 갔다 !정말 너무너무 기대가 됐다 !!!🐳 입장 3동은 후문, 정문이 있다고 하는데 후문이 아닌 정문으로 들어오도록 안내가 정말 잘 되어 있었다.( 후문에도..

테스트 코드

[NestJS] 실제 DB와 연결해 Service Layer 테스트하기 + runInBand

이 글은 인프런 강의 박우빈 님의Practical Testing: 실용적인 테스트 가이드를 수강하고 참고하여 작성한 게시글입니다. DB 접속 없이 Service Layer를 테스트하고 싶다면 이 글을 참고해 주세요. ※ 잘못된 점이 있거나 다른 의견을 가지신 분들 댓글로 내용 남겨 주세요 ! 언제나 환영입니다. 🐳 서론 지금 재직하는 회사에서는 테스트코드를 작성하지 않기 때문에 다른 NestJS를 사용하는 곳에서는 Service Layer 를 어떻게 테스트하는지 궁금했다. 그래서 NestJS 테스트코드 강의를 수강해 봤지만 시원하게 Service Layer를 테스트하는 방법을 알려주는 강의를 발견하지 못했다. 그래서 이미 테스트코드 시장이 많이 발전한 Java로 시선을 돌렸고 박우빈 님의 강의를 발견하게..

테스트 코드

[NestJS] Service Layer 를 직접 구현한 Class로 Mocking하기 [TestingModule]

실제 DB를 연결해 Service Layer 를 테스트하는 방법이 궁금하신 분들은 이 글을 참고해 주세요. 🐳문제상황 Service Layer를 테스트하기 위해서는 Repository를 Mocking 하거나 실제 Repository를 사용하거나 하는 방법을 사용해야 한다. 이 글에서는 NestJS에서 제공하는 TestingModule 기능을 활용해 Repository 레이어를 Mocking해 테스트코드를 작성하는 방법을 설명하려고 한다. 🐳 TestingModule을 사용하여 mocking하기 jest 에서 제공하는 기능들 jest.fn , jest.spyOn 등을 이용하여 mocking 한 후에 테스트코드를 작성하는 것도 가능하지만 테스트코드가 길어져 가독성이 떨어지는 것 같아. 다른 방법을 찾아보..

테스트 코드

[TDD] 테스트 코드가 필요한 이유?

아래의 글은 패스트캠퍼스 강의 "The RED : 이규원의 현실 세상의 TDD : 안정감을 주는 코드 작성 방법"을 수강하고 작성한 글입니다. 🐳 도대체 왜 테스트코드가 필요해 ? 본인이 수백억 대의 매출 규모를 가진 서비스를 유지보수하고 있다고 생각해 보자. 그런데 여기에 신규 기능으로 새로운 할인 쿠폰을 추가하려고 한다고 가정하자. 기능 개발 후에 작성한 시나리오 기반으로 여러 가지 실험을 하면서 테스트를 완료했다. 하지만 그럼에도 불길한 기분은 떨칠 수 없을 것이다. "내가 테스트를 잘못했으면 어떡하지?" "놓친 테스트가 있으면 어떡하지" "다른 기능에 이상이 생기면 어떡하지" 위와 같은 불길한 생각이 떠나지 않을 것이다. 그렇다고 신규 기능을 개발한 부분 외에 모든 기능을 일일이 테스트하는 것 또..

Node.js

TypeORM v0.3에서 Repository 구현 및 테스트 코드 구현

🐳 문제 typeORM이 0.3 버전을 출시하면서 기존에 레포지터리에 의존성을 주입 해주던 @InjectRepository() 데코레이터가 사라지게 됐다. 그래서 TypeORM 0.3 버전에서는 어떻게 레포지터리 패턴을 사용하는지 TypeORM 공식 문서를 통해 확인해 보았다. 아래는 TypeORM 공식문서에서 발췌한 Repository 패턴을 구현하는 방법이다. import { User } from "./entity/User" const userRepository = dataSource.getRepository(User) const user = await userRepository.findOneBy({ id: 1, }) user.name = "Umed" await userRepository.save(u..

테스트 코드

ts-mockito 와 deepEqual 사용하기

🐳 문제 describe("User Service Test", () => { it('should call repository.findOneBy', async () => { const user = new User(); user.name = "Hoo" const mockedRepository = mock(UserRepository); when(mockedRepository.findOneBy({name:user.name})).thenResolve(user); const repo = instance(mockedRepository); const result = await repo.findOneyBy({name:user.naem}); verify(mockedRepository.findOneBy({name:user...

후뿡이
'tdd' 태그의 글 목록