Unit Test 할 때 @testable의 역할이 뭘까?
·
Swift
반갑습니다 집주인들 기술팀장 박효준입니다~이번에 테스트 코드를 작성하면서 testable이 무엇인가!에 대해 궁금해져서 정리해보았습니다!레츠 기릿~~문제 상황MHDomain이라는 모듈 안에 MHDomain 동적 라이브러리와 MHDomainTests 정적 라이브러리가 있고,MHPresentation 모듈 안에 MHPresentation 동적 라이브러리와 MHPresentationTests 정적 라이브러리가 있다.테스트를 진행할 때 import MHDomain 을 해주어야 하는데,이 때 import 앞에 @testable 키워드를 사용할 수 있다.무슨 역할을 하는 지 알아보자문제 해결@testable 키워드테스트 대상 모듈의 접근 수준에 영향을 주는지 여부이다.테스트 접근성 증가:Swift의 기본 접근 수준..
DIContainer 사용 시 Actor Isolation 문제 해결하기
·
iOS
안녕하세요~! 집주인들의 미래 박효준입니다!이번에는 저희가 Swift6환경에서 DIContainer를 Singleton으로 사용하려고 했는데...!actor와 isolation문제가 발생해서 해결과정을 적었습니다! 그럼 슈웃~문제 상황UIKit을 사용하면서 actor를 기반으로 한 DIContainer를 구현하던 중, 아래와 같은 에러를 마주했다.Call to actor-isolated instance method 'register(_:object:)' in a synchronous main actor-isolated context왜 이런 지 알아보도록 하자문제 해결시도한 방법들actor로 DIContainer를 구현하고, register와 resolve 메서드를 사용하려 했더니 위와 같은 에러가 발생했..
DIContainer 도입 논의 과정
·
Architecture, Design Pattern
안녕하세요 집주인들입니다.DIContainer를 어떻게 도입해야할지에 대해 정말 많은 고민을 했습니다..아래는 저희의 고민과정입니다! 바로 보러가시죵문제 상황현재 상황에서 DIContainer를 도입하는 것이 적절한지에 대해 논의가 필요했다.의존성 주입을 누가 해줄 것인지, 모듈화되어 있는 구조에서 어떻게 의존성을 주입할 것인지 결정이 필요함문제 해결DIContainer 도입 계기클린 아키텍처가 적용을 함에 따라 아래와 같이 뷰컨트롤러 하나를 띄우더라도 viewModel부터 useCase, Repository를 다 만들어주고 최종적으로 viewModel을 뷰컨트롤러에 넣어주면서 띄워준다.let issueRepository = IssuesRepository()let fetchIssuesUseCase = F..