13-1 TDD

STONE·2025년 1월 13일

Swift_Ios

목록 보기
39/44

주제

TDD

Swift에서 TDD(Test-Driven Development)는 소프트웨어 개발 방법론 중 하나로, 테스트 코드를 먼저 작성하고 그 테스트를 통과하는 최소한의 코드를 구현하는 방식으로 개발을 진행합니다. 이 과정은 다음의 3단계로 나뉩니다:

RED(실패하는 테스트 작성)

  • 테스트를 작성하지만 아직 코드를 구현하지 않아 테스트는 실패합니다
  • 이 단계에서는 테스트가 원하는 동작을 정의하고, 실패를 확인하며 개발의 목표를 명확히 설정합니다.

GREEN(테스트 통과를 위한 최소 코드 작성)

  • 테스트를 통과할 수 있는 최소한의 코드를 작성합니다.
  • 이 단계에서는 구현의 복잡성을 최소화하고, 테스트가 통과하는 것에 집중합니다

Refactor(코드 개선)

  • 테스트가 통과하는 상태를 유지하면서 코드를 리팩터링하여 가독성, 성능, 유지보수성을 개선합니다
  • 이 단계에서는 기능에 영향을 주지 않는 범위에서는 코드 품질을 높입니다

장점

버그 감소: 테스트를 먼저 작성하므로 코드 작성 시 버그를 미리 방지할 수 있습니다.
리팩터링 용이성: 테스트가 있으므로 리팩터링 중에도 기존 기능이 깨지지 않음을 확인할 수 있습니다.
설계 개선: TDD는 기능을 작은 단위로 나누어 설계하도록 유도하여 코드 품질을 높입니다.
문서화 효과: 테스트 코드는 비공식적인 문서로 활용되어 코드의 동작을 이해하는 데 도움을 줍니다.

Swift에서 TDD를 지원하는 도구

XCTest: 기본 제공되는 테스트 프레임워크로 단위 테스트 및 UI 테스트에 활용됩니다.
Quick/Nimble: BDD(Behavior-Driven Development) 스타일의 테스트를 작성할 수 있는 프레임워크.
Mocking 도구: Mocker 또는 Cuckoo 같은 도구로 의존성 주입과 Mock 객체를 활용한 테스트를 지원.

profile
흠...?

0개의 댓글