TIL - 2021.04.03 (Sat)

Youngwoo Lee·2021년 4월 6일
0

TIL

목록 보기
17/29
post-thumbnail

공부 키워드

  • JuiceMaker 정리
  • Calculator 1차 리팩토링 & Step2 진행
  • TDD 복습, AutoLayout 복습

JuiceMaker 정리

kane-young/iOS_yagom_starter_camp

Fork Repository으로부터 merge해서 Step2 피드백 수용 및 Step3 진행, 프로젝트 기록

Calculator 1차 리팩토링 & Step2 진행

  • 마지막 PR을 급하게 보내게 되어서 디테일하게 하지 못한 리팩토링 진행
  • 3/29 활동학습에서 학습했던 Unit Test 진행

리팩토링을 진행하면서 로직이 달라지게 된 부분이 있었는데 Unit Test를 통해 쉽게 찾을 수 있었음 👍🏼

  • = 입력시 Binary Calculator 에서 Stack 변화에 문제가 있음을 찾음
  • not 연산이 다른 연산과 다른 중위 연산자들과 다르게 작동하는 것을 찾음


Unit Test 복습

  • Target → + → Application Extension에서 Unit Testing Bundle 선택 추가
    • IOS의 경우 프로젝트 생성시 Include Tests 체크
  • XCTest 프레임워크 : 테스트를 하기위한 프레임워크
    • Target이 다르기 때문에 테스트모듈에 @testable import 테스트할모듈 작성
  • 테스트하기 위한 메서드의 이름은 test_로 시작 (테스트 케이스 인식을 위한 기본 Rule)
  • XCTAssert(테스트할 코드,결괏값?) - 테스트할 코드가 결괏값과 같은지
    테스트할 수 있는 메서드

코드 커버리지를 선택을 하면 코드 커버리지가 오른쪽에 표시되며 해당 코드가 테스트 되었는지 확인할 수 있다

help에 edit scheme 검색을 통해서 해당 설정 가능

Unit 테스트 수행 이후 Reports 항목을 통해서 확인 가능

Unit 테스트 도중 수행된 코드가 어느 부분인지 자세하게 볼 수 있다
나머지는 Zedd 블로그 참조ㅎ😅
Code Coverage

테스트 관련 용어

  • SUT(System under test)
  • Test Doubles
    • dummy
    • stub
    • fake
    • spy
    • Mock


assert와 guard의 차이❓❓**

assert 함수는 디버깅 모드에서만 동작한다. 배포하는 애플리케이션에서는 제외된다.

주로 디버깅 중 조건의 검증을 위하여 사용한다

var someInt: Int = 0
assert(someInt == 0)
//만약 조건이 false라면 동작을 중지)
assert(someInt == 0, "someInt != 0")
//만약 조건이 false라면 동작을 중지시키고 두번 째 인자값을 출력한다

guard 함수는 많이들 써봤듯이 디버깅 모드 뿐만 아니라 많은 조건 식에서 많이 사용된다


특징이라면... guard else { } 구문 내에서는 무조건 return, break 등의 코드 종료를 지시하는 지시어가 있어야한다. 특정 구문을 빠르게 종료하는데 많이 사용된다


profile
iOS Developer Student

0개의 댓글