안녕하세요 Hani입니다. 이번에는 Dummy에 대한 생각을 말할 거예요. //when sut.calculate(birth: Birth(year: 2000, month: 2, day: 29)) //then ... SUT의 메서드를 호출할 때 전달인자로 값을 넘겨주곤 합니다. 해당 전달인자를 볼 때는 몇 가지 생각이 이어집니다. a) 2000년은 2월 29일이 있을까. b) then 구절이 윤년에 대하여 테스트하고 있는 걸까. c) 전달인자의 변화가 테스트 결과에 영향을 줄까. 즉, 테스트를 추적하는 입장에선 전달인자가 dummy값인지 아니면 테스트에 필요한 값인지 구별할 수 없습니다. 물론 소스 코드를 보거나 테스트 코드의 description을 보면 알 수도 있겠지만 추적하는데 시간이 소요됩니다. 전부..
안녕하세요 Hani입니다. 이번에는 RxTest의 Observable에 대하여 알아볼 거예요. Subscription Subscription은 TestableObservable이 언제 구독되었고, 구독이 종료되었는지를 나타냅니다. Hashable을 순응하고있습니다. TestableObservable TestableObservable은 HotObservable과 ColdObservable 클래스가 상속받을 클래스입니다. 시간축(TestScheduler)과 시간축에서 발생할 Recorded(Event+Time) 배열을 생성인자로 받습니다. TestableObservable의 Lifecycle동안 기록되는 Subscription 배열은 초기에 비어있는 상태지만 HotObservable과 ColdObservab..
안녕하세요 Hani입니다. RxTest의 TestScheduler의 start, TestableObserver를 알아볼 거예욥. TestScheduler TestScheduler는 TestScheduler의 시간축에서 이벤트를 관찰하는 TestableObserver를 생성할 수 있습니다. 자신을 생성인자로 하여 TestableObserver를 생성할 수 있으며 TestableObserver는 발생한 이벤트들을 on 메서드를 통해 전달받아 events 프로퍼티에 저장합니다. TestableObserver TestScheduler의 start(created: subscribed: disposed: create: ) 메서드를 호출하면 start의 create 클로저에 넘겨준 것으로 Observable을 생성하..
안녕하세요 Hani입니다. RxTest의 TestTime, Recorded, TestScheduler를 알아볼 거예욥. RxTest TestTime. 이벤트를 방출할 시간을 의미합니다. Recorded Recorded. TestTime에 어떤 이벤트를 방출할 것인지를 의미합니다. Value는 next, error등의 Event가 됩니다. 디버깅을 위해 Recorded를 찍어보거나 발생한 Recorded가 예상한 Recorded가 맞는지 비교할 수 있습니다. next, completed, error를 통해 방출할 이벤트를 배열에 담아둘 수 있습니다. (Recorded 배열은 다음 포스팅에서 등장할 Observable의 생성인자가 됩니다.) TestScheduler. Recorded가 발생하는 가상의 시간입..
- Total
- Today
- Yesterday
- WWDC21
- WWDC16
- 강한 순환 참조
- WWDC19
- 네트워크 플로우
- HIG
- 에드몬드 카프 알고리즘
- 다익스트라 시간복잡도
- 부스트캠프 6기
- WWDC17
- 네트워크 유량
- 포드 풀커슨 알고리즘
- rxswift
- Testable
- observeOn
- State Restoration
- 최단경로문제
- CompositionalLayout
- IOS
- 코딩대회
- test coverage
- 컴퓨터 추상화
- 벨만포드 알고리즘
- CPU와 Memory
- 최단경로 알고리즘
- 최대 매칭
- mach-o
- 최단경로 문제
- 벨만포드 시간복잡도
- MeTal
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |