[Phase 2] Unit 테스트 작성하기

SteadySlower·2022년 9월 27일
0

[Phase 1]이 끝났습니다.

거의 3개월에 거친 단어장 개발의 1단계가 끝났습니다. 원래는 1달 컷으로😅  빠르게 주요 기능만 개발하고 끝내려고 했는데 하다보니까 이런저런 기능에 욕심이 생겨서 상당히 오랜 기간 진행하게 되었네요. 회사를 다니면서 사이드 프로젝트를 하는 것도 쉽지 않았고요.

Test가 필요하다!!!

다양한 기능을 추가하면서 앱이 점점 복잡해지고 있습니다. 기능을 추가하거나 리팩토링하는 일도 잦아졌습니다. 이럴 때마다 전혀 예상도 못했던 버그를 만나거나… 리팩토링을 할 때마다 이거 제대로 작동 안할지도 모른다는 두려움에😱  사로잡혀 있을 때가 많았습니다.

이번에 Phase 2를 통해서 테스트를 작성하고 이런 걱정을 좀 덜어야 할 것 같습니다.

Quick & Nimble

https://github.com/Quick/Quick

https://github.com/Quick/Nimble

저는 테스트를 작성할 때 기본으로 제공하는 XCTest 대신에 위 2개의 프레임워크를 활용해서 테스트를 작성하고자 합니다. 이유를 다음과 같습니다.

1. 지금 다니는 회사에서 사용하는 기술

개발자가 자기개발을 하고 개인프로젝트를 하는 이유는 많은 이유가 있겠지만 큰 비중을 차지하는 것 중에 하나가 회사에서 일을 잘하기 위함일 것입니다. 제가 SwiftUI를 활용해서 단어장 앱을 개발하는 이유 중에 하나가 바로 회사에서 SwiftUI를 사용해서 진행하는 프로젝트에 기여하고 싶었기 때문입니다.

이번에 개인 프로젝트에서 사용하면서 좀 더 실력을 기르고자 합니다.

2. 가독성

처음에 XCTest에 대해서 어렴풋하게만 알고 있고 바로 Quick과 Nimble을 사용하는 프로젝트에 들어갔음에도 상당히 쉽게 이해할 수 있었습니다. Given-When-Then을 한눈에 볼 수 있고 테스트 이름 하나하나에 모든 정보를 담아야 하는 XCTest와는 다르게 행 구분을 통해서 더 가독성 높은 코드를 짤 수 있는 구조이기 때문입니다.

저는 코드를 작성하면서 항상 남이 본다고 생각하고 짜는데요. 그럼에도 부족함이 많아 스스로 나중에 봐도 약간 헷갈리는 부분이 있을 때도 많습니다😅  가독성 높은 프레임워크를 사용해서 미래의 내가 봐도, 남이 봐도 쉽게 읽히는 테스트코드를 써보겠습니다.

3. 중복을 줄일 수 있다.

forEach, afterEach 같은 Quick의 기능들은 잘만 사용하면 너무나도 쉽게 중복되는 코드를 줄일 수 있게 해줍니다.

Unit Test

원래는 UI Test와 Unit Test, 그리고 Acceptance Test까지 함께 작성하는 것이 기존의 Phase 2의 목표였습니다만… 현재 단어장을 쓰면서도 추가하고 싶은 기능이 너무나도 많습니다. 따라서 일단 Unit Test에만 집중해서 작성하고 다른 테스트들을 기능을 추가해가면서 천천히 작성하도록 할 예정입니다.

profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글