알고리즘
백준
- 별 찍기 - 18
- 아무리 생각해도 답이 맞는데, 왜 출력 오류라고 뜰까... 했는데, 문자열이 끝난 이후 오른쪽에 공백문자가 1개 초과되면 출력오류라고 한다.
책
생각공작소
Jest
Mock
테스트는 화이트박스 테스트를 할 때 유용하다. 예를 들어, 내가 ApplicationService
객체를 테스트 한다고 생각해보자. 이 객체는 보통 Aggregate
의 클라이언트 객체이므로, 여러 Aggregate
객체들을 생성하고 호출할 것이다. 이 때, 정말 제대로 호출하는지를 테스트하면 된다.
- 위의 목적을 달성하고자 할 때,
mockFn.mockImplementation
을 활용할 수 있다.
const create = jest.fn()
.mockImplementation((c: ICommentVO) => {
return Promise.resolve<Comment>(
Comment.create(c)
)
})
test('writeCommentToRestaurantDetail', () => {
const mockRepository: ICommentRepository
= new MockCommentRepository()
const data: ICommentVO = {
id: 'test-id',
rid: 'test-rid',
rating: 5,
content: 'test-content',
commenter: {
mid: 'test-mid',
type: 'member',
name: 'test-name',
}
}
appService.writeCommentToRestaurantDetail(
mockRepository, data, 'test-rid',
)
.then(() => {
expect(mockRepository.create).toHaveBeenCalledWith(data)
})
})
- 아주 기초적인 CRUD기능만을 테스트하기 때문에, 사실상 큰 의미가 있는 테스트는 아니지만 TDD와 DDD 개념으로 처음 만들어보는 프로젝트라서 그런지 배우는게 많은 것 같다.