Skip to content

Conversation

@Yeonnies
Copy link
Collaborator

🍎 iOS Pull request

  • 테스트코드 과제!

솔직히 뷰 구현 너무 빡세서 AI 돌렸습니다.
근데 거의 실제 계산기 수준으로 구현해주네요 이건 제가 했다고 당당하게 말할 수가 없어서 그냥 양심고백 했습니다..

💡 새로 알게 된 내용

  • mutating: Swift의 Value Type 은 기본적으로 내부에서 인스턴스 메서드를 통해 내부 값을 수정할 수 없는데, 내부에서 값 변경이 필요할 경우, 해당 메서드가 mutating 메서드라는 것을 명시하여 값을 변경할 수 있게 한다고 합니다!
  • 원래는 모델을 직접 선언했는데, 이를 DI 방식으로 참조하도록 변경하여 테스트하기 쉽게 만들었습니다. 이때 프로토콜을 사용하여 구체적인 타입이 아니라 추상화된 모델을 뷰모델이 참조하도록 했습니다!
  • 아래와 같이 훨씬 테스트하기 용이해졌음을 알 수 있습니다. 저번과 내용은 비슷해서 코드를 자세히 설명하진 않겠지만, 네이밍을 좀더 테스트코드 스럽게 했습니다.
var sut: CalculatorModel!

func test_performOperation_AddTwoNumbers_ReturnsSum() {
        // Given: 5 + 3을 입력
        sut.inputNumber("5")
        sut.inputOperation(.add)
        sut.inputNumber("3")
        
        // When: = 버튼을 누름
        sut.performOperation()
        
        // Then: 결과는 8
        XCTAssertEqual(sut.displayValue, "8")
    }
  • 다 성공했네요 야호

💭 추가 논의사항

이렇게 테스트 상황을 일일이 다 구현해야한다는 게 좀 힘든 것 같습니다..
단위테스트를 하더라도 구멍이 생길 수도 있을 거 같다는 생각이 들어 좀더 촘촘하게 테스트코드를 짜는 방법을 연구해봐야할 것 같네요..
실제로 앱잼에 적용하는 그날까지 모두 화이팅!

📸 스크린샷

기능 스크린샷
GIF

@Yeonnies Yeonnies self-assigned this Dec 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants