-
[iOS, TDD] Swift 테스트와 XCAssert 알아보기iOS/TDD 2023. 10. 31. 13:26반응형
지난 글에서 Swift 프로젝트에 테스트를 도입해봤습니다
이번 글에서는 계산기의 기능(더하기, 곱하기)를 코드로 구현하고 테스트 적용하는 방법을 알아보겠습니다.
계산기 클래스를 만들어 더하기와 곱하기 기능을 하는 함수를 만들어주었고 테스트 코드도 작성해주었습니다.
테스트코드를 작성하기 위해 함수 이름 앞에 test를 넣어주었고, 계산기 인스턴스를 만들어 더하기와 곱하기 함수를 테스트했습니다.
XCTAssertEqual은 첫번째 인자와 두번째 인자가 같은 지를 확인하는 함수입니다. 만약 오류가 난다면 로그에 세번째 인자로 들어간 메세지가 띄워집니다.
커맨드(⌘) + U 를 눌러 테스트 해보겠습니다.
테스트가 통과하지 못했다고 나옵니다. 보니까 0 값과 예상했던 120과 다르다는 오류가 발생했습니다.
제가 product 함수를 작성할 때, result 변수의 초기값을 0으로 주었는데, 곱셈을 할 때에는 0을 곱하면 0이 나올 수 밖에 없으니 테스트가 통과하지 못했던 것입니다.
테스트 코드를 작성함으로써 함수를 잘 못 작성했다는 것을 알 수 있었고 result 변수의 초기값을 1으로 수정을 하여 테스트를 통과시켰습니다.
이렇게 함수를 작성한 것을 테스트 할 때뿐 아니라 기존에 잘 작동되었던 함수를 수정할 때에도 테스트가 유용하게 사용될 수 있습니다.
위의 더하기와 곱하기 함수를 reduce 함수를 사용하여 수정해보겠습니다.
위와 같이 reduce를 사용하여 함수를 수정한 이후에도 기존에 있던 테스트코드가 동작하여 테스트를 통과시키는 것을 확인할 수 있습니다.
XCTest 공식문서
반응형'iOS > TDD' 카테고리의 다른 글
[iOS, TDD] UIKit 컴포넌트 테스트하기 (0) 2023.11.01 [Swift, TDD] Swift 프로젝트에 테스트 도입하기 (0) 2023.10.31