Test 4

UseCase와 Repository 테스트 목적 정리

UseCase와 Repository 테스트 목적 정리 해당 형태의 구조의 프로젝트에서 테스트코드를 작성하면서 학습하고 느낀점들을 정리. 글의 순서UseCase 테스트 목적Repository 테스트 목적Repository 테스트 하기SearchSubwayUseCaseTests 실패 후 로직 보완 안드로이드 공식 앱 아키텍처 가이드를 확인하면서 UseCase 영역에 해당하는 Domain이 Optional로 되어 있음을 확인할 수 있었음.개인 경험에 의하면 실제로 UseCase에서 특별한 처리 없이 사실상 래핑에만 해당하는 경우도 많긴 함. 일반적인 상황에서는 Domain Optional 이어도 나쁘지 않겠지만, 기능이 하나 둘 추가되면서 Repository가 두꺼워지고 결국은 UseCase를 분리하는 과정에..

Test Double (Swift)

Test Double (Swift) 간단 용어 정리테스트 더블이란, doc와 동일한 API를 제공 sut (system under test): 테스트 대상 doc (depended-on component): sut이 의존하고 있는 구성요소 왜 필요할까?Solitary or Sociable?, 테스트 중인 단위가 Sociable한지 혹은 Solitary인지의 여부가 중요Sociable의 경우에 테스트하는 Unit의 결함이 아닌 의존하고 있는 클래스의 결함으로 인해 테스트가 실패하는 문제가 발생할 수 있음이러한 문제를 막기 위해 실제 동작하는 것처럼 보이는 별개의 객체를 따로 만드는 것을 고려할 수 있다.   테스트 더블의 종류 Dummy: 아무런 동작을 하지 않으며, 인스턴스화 된 객체만 필요하고, 기능까..

XCTest Stubber

XCTest Stubber테스트코드를 작성하는데 Stubber라는게 있대서 알아보고자 함.  오픈소스 링크https://github.com/devxoul/Stubber GitHub - devxoul/Stubber: A minimal method stub for SwiftA minimal method stub for Swift. Contribute to devxoul/Stubber development by creating an account on GitHub.github.com  배경 네트워크 상황과 관련한 코드를 작성하고 있는데, 이를 활용해 테스트 환경을 더 손쉽게 구축하여 본질에 집중하고자 함.테스트 코드를 작성하면서 네트워크 상에서는 너무 변수가 많은데 이를 하나하나 다 가정하고 테스트 코드를 ..

[XCTest] 🧑🏻‍💻 Xcode 기존 프로젝트에 XCTest 작성 파일 추가하기!

✅ 에러에 대해서 알아보자. 🟠 Library not loaded: @rpath/XCTest.framework/XCTest Xcode 파일을 만들 때, test를 include하지 않고 만들었다가 이후에 테스트를 해야해서 테스트 코드 파일을 만들고 돌리는데, 앱이 죽어버리는 상황이 발생. 그래서 로그 훑어 보니까 저런 에러라 어떻게 할까 찾아봄. ✅ [해결법] 결국은 기존 프로젝트에 테스트 코드 작성을 위한 파일을 만들어야 하는데 아래의 사진처럼 저 버튼을 클릭하고 저기 하단에 플러스 모양을 클릭 그럼 그 플러스 모양에 막 이렇게 뜰탠데, 여기에 Unit Test 랑 UI Test를 선택할 수 있음 Target이라고 써져있는 파일 선택하고 내 프로젝트 파일을 보면 테스트 파일이 만들어진 것을 확인할 수 ..