일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- RxCocoa
- rxswift
- uitableview
- 애니메이션
- swift documentation
- Observable
- combine
- tableView
- uiscrollview
- map
- SWIFT
- MVVM
- swiftUI
- 리펙토링
- 리팩토링
- 리펙터링
- Human interface guide
- Xcode
- ribs
- Refactoring
- collectionview
- ios
- HIG
- Clean Code
- 스위프트
- UITextView
- UICollectionView
- 클린 코드
- clean architecture
- Protocol
- Today
- Total
목록Unit Test와 UI Test (5)
김종권의 iOS 앱 개발 알아가기
* 사용되는 라이브러리 - RxSwift - RxCocoa - RxTest (RxSwift의 스트림들을 테스트 할 수 있는, 가상 시간을 함께 이벤트를 발생시킬 수 있는 프레임워크) - RxNimble (expect라는 함수로 명료하게 테스트를 할 수 있게 해주는 프레임워크) 1. 간단한 RxSwift, MVVM구조 설계 RxSwift구조 코드 참고: ios-development.tistory.com/173 2. Unit 테스트 코드 작성 1) Nimble프레임워크에서 사용 할 events함수 정의 import Foundation import RxSwift import RxTest import Nimble import RxNimble // Tests그룹 하위에, ExpectationExtensions.s..
테스트 대상 코드 class Converter { func starPrint(number: Int) -> String { return String(repeating: "*", count: number) } } Nimble 프레임워크 Nimble: "재빠른" 다양한 assertion 제공 가독성 좋은 실패 메세지 제공: (XCTAssert에서는 실패 메세지를 따로 정의해주어야 확인이 쉬움) - XCTAssertTrue(result, "1") // 틀린경우 "XCTAssertTrue failed" - XCTAssertTrue(result, "1", "입력값에 대한 값이 틀림") // 틀린경우 아래와 같은 메세지 func testExample() throws { let result = converter?.st..
BDD TDD는 개발 시간이 짧은 경우 불리한 단점 BDD는 사용자의 행동을 기준으로 테스트하여 개발 테스트 기능 명시 -> Given(시나리오 정의) -> When (시나리오 조건) -> Then (시나리오를 완료했을 때 보장되는 결과 명시) Nimble과 Quick 프레임워크를 이용한 테스트 참고: ios-development.tistory.com/338?category=962580
TDD 테스트 주도 개발 Unit test구조가 잡혀있으면 추후에 리팩토링 후 확인이 쉬워, 변경이 쉬움 -> unit test구조를 먼저 잡기위해 TDD방법 존재 보통 기획서가 있으면, 그 기획서에 나와있는 내용들을 테스트케이스로 만들며 개발 협업 - 개발자 한명은 테스트를 작성, 나머지는 테스트를 통과하는 코드를 작성 TDD 사용 Red-Green-Refactor - Red: 테스트가 실패하는 코드 작성 (실패를 확인) - Green: 테스트를 통과하기위한 최소한의 구현 - Refacrtor: 코드를 정리하고 최적화 TDD 준비 Numero 코드 - 숫자와 로마 숫자 맞추기 (플레이어가 맞는지 체크 -> 10번 시도) Unit Test Case Class파일 생성 세팅 - 디바이스는 simulator..
Unit test 단위 테스트: 프로그램의 기본 단위인 모듈을 테스트 모듈이 제대로 구현되어 정해진 기능을 정확히 수행하는지를 테스트 프로그램의 각 부분을 고립시켜서 각각의 부분이 정확하게 동작하는지 확인 Unit test구조가 잡혀있으면 추후에 리팩토링 후 확인이 쉬워, 변경이 쉬움 -> unit test구조를 먼저 잡기위해 TDD방법 존재 Xcode에서 Unit test 환경 세팅 "Test navigation" 클릭 Unit Test target생성: 하단에 '+' 버튼 클릭 -> New Unit Test Target 클릭 단, navigator에서 테스트 탭을 눌러야 보이므로 주의 ~Tests.swift 파일 - 1. setUpWithError(): 테스트 코드 시작 전 실행 (값을 세팅하는 부분..