제약 조건이 있는 애니메이션은 쉽게 사용할 수 있으므로 다른 사람들이 말하는 것을 믿어서는 안 됩니다. 제약 조건의 상수 값에 애니메이션을 적용하고 다양한 제약 조건을 전환하는 기본 원칙을 이해하는 데 도움이 되는 몇 가지 규칙과 예제를 만들었습니다. 👍 UIDevice 클래스를 통해 사용자 인터페이스 idom을 확인할 수도 있습니다 (일명이 괴물 `장치 아이폰 또는 iPad?) 그것에 따라 예를 들어 글꼴 크기를 설정할 수 있습니다. 📱 응용 프로그램이 여러 장치 방향을 지원하려는 경우 뷰 컨트롤러 내에서 다음 메서드를 구현해야 합니다. 이 섹션에는 테스트 `Given`를 지원하는 데 필요한 테스트 복식이 포함되어 있습니다. 모든 스텁과 모의는 여기에 가야합니다. 이 특정 예에서, ListGists비즈니스로직스파이는 fetchGists를 감시하도록 정의됩니다(요청:) 메서드. fetchGistsCalled 부울 변수는 메서드 호출을 기록하는 데 사용됩니다. 메서드가 호출되면 true로 설정하기만 하면 됩니다. 농담 외에도, 그것은 새로운 시대의 시작이었다, 점점 더 많은 장치가 태어났다, 자동 레이아웃 제약 으로 그것은 보기를 유지하기 위해 매우 쉽게했다.

이제 레이아웃 제약 조건으로 이전 예제를 리팩터링해야 합니다. 첫 번째 아이폰을 기억하십니까? 하나의 화면은 그들 모두를 지배! 320×480, 제약 없음, 적응성 없음, 프레임 및 경계. 고정 된 크기 캔버스에 뷰를 배치하는 것은 절대적으로 생각할 필요가 없습니다, 여기에 예입니다. 그것은 매우 간단합니다, 당신은 코너를 적용 할 수 있습니다마스크 모서리의 일부를 둥글게. 레이어 기반 레이아웃 예제는 아티클에 대해 제공된 소스 코드 내부에 있으며 gitlab에서 다운로드하거나 복제할 수 있습니다. 때에서, 당신은 단순히 시험 주제에 방법을 호출합니다. 메서드에 인수 또는 일부 초기 상태가 필요한 경우. 주어진에서 이러한 설정을 설정합니다.

한 가지 주의해야 할 점은 이것입니다. viewDidLoad() 메서드를 테스트할 때 해당 메서드 내에서 발생하는 일에 관심이 있습니다. 그러나 loadView()를 호출하면 Given의 테스트 설정 코드가 실행되기 전에 뷰DidLoad()가 이미 트리거됩니다. 따라서 when에서 loadView()를 호출하려고 합니다. 다른 테스트의 경우 Given에서 loadView() 메서드를 호출하기만 하면 됩니다. 위의 예제에서는 View 컨트롤러에서 loadView() 메서드를 호출합니다. 주어진에서, 당신은 당신의 시험에 필요한 모든 테스트 복식을 설정합니다. 언제 테스트 더블이 필요합니까? 테스트 double을 사용하여 실제 종속성을 대체합니다. 실제 종속성은 자동으로 작업을 수행하며 수행하거나 하지 않는지 알려주지 않습니다.

그래서 당신은 가짜 하나를 대체 – 테스트 더블. 그것은 당신이 변경하는 것이 무료입니다. 예를 들어 메서드를 재정의하여 아무 것도 수행하지 않도록 할 수 있지만 호출되었다고만 알 수 있습니다. 이것이 본질적으로 단위 테스트에서 테스트 더블을 사용하는 이유입니다. 우리는 종속성이 실제 작업을 수행하는 것을 원하지 않습니다. 우리는 단지 그것이 일을 하도록 요청받았다는 것을 알고 싶습니다. 그러나 메서드를 비워 두는 대신 부울 변수 형식을 false로 설정할 수 있습니다. 처음에이 변수는 false로 설정됩니다. 테스트가 끝나면 이 변수를 다시 확인합니다. true이면 테스트 중에 메서드가 호출되었습니다. 위의 예에서, 우리는 ListGists를 설정비즈니스LogicSpy 테스트 두 번 주어진. 그런 다음 어설션 문을 작성하여 테스트 복식 및 테스트 대상의 상태를 확인하여 원하는 동작이 관찰되는지 확인합니다.

위의 예에서, 우리는 그 주장그리스트비즈니스LogicSpy.fetchGists호출 true로 설정되어 있습니다. 이 모든 것을 추상화로 설명하는 대신 사람들이 뷰를 혼합하고 컨트롤러를 보는 방법에 대한 구체적인 예를 살펴보겠습니다. 이 괴물을 통해 눈을 캐스팅: NB: 위의 내 예에서, 나는 다음과 같은 AppDelegate 내부의 보기 계층 구조에 추가 해요: 아래이 작은 Swift 코드 예제는 컴팩트 하 고 일반에 대 한 다른 레이아웃을 설정 하기 위한 크기 클래스를 확인 하는 방법을 보여 줍니다. 화면. 우선 UIViewController 라이프 사이클 메서드를 요약하고 싶습니다.