테스트는 일반적으로 다음과 같습니다. 요청할 input(입력) 상태나 값을 준비합니다. 코드가 테스트되도록 호출합니다. ouput(출력)이 맞는지 확인합니다. (asserting) 테스트 가능한 코드는 클라이언트가 작동하는 모든 입력을 제어할 수 있는 방법을 제공합니다. 클라이언트가 생산되는 모든 출력을 검사할 수 있는 방법을 제공합니다. 나중에 코드의 동작에 영향을 미칠 수 있는 내부적인 상태에 의존하는 것을 방지합니다. 첫 번째 기술 프로토콜과 파라미터화하기 open 버튼과 segmented control이 가능한 샘플 예제입니다. 뷰 컨트롤러에서 버튼을 탭하면 호출되는 event입니다. iOS가 다른 앱으로 switch하도록 하는 URL을 만드는 것부터 busines logic이 시작됩니다. UIK..
원본 출처 : https://medium.com/flawless-app-stories/you-dont-always-need-weak-self-a778bec505ef You don’t (always) need [weak self] We will talk about weak self inside of Swift closures to avoid retain cycles & explore cases where it may not be necessary to capture self weakly. medium.com [weak self]를 사용할 때, self?.대신 guard let self = self를 사용하면 사이드 이펙트가 생깁니다. 클로저는 비용이 높은 serial 작업, 세마포어 같은 스레드 블락 때문..
원본 출처 : https://www.jessesquires.com/blog/2016/07/31/enums-as-configs/ Enums as configuration: the anti-pattern One of the most common patterns I see in software design with Objective-C (and sometimes Swift), is the use of enumeration types (enum) as configurations for a class. For example, passing an enum to a UIView to style it in... www.jessesquires.com Objective-C(혹은 Swift)에서 클래스의 configurat..