목록TestCode (4)
Jake- ios 성장일기
1. TDD란? (Test-Driven-Development) TDD는 테스트 주도 개발이란 뜻으로, 기존에 코드를 작성하고 테스트코드를 작성하던 방식과 다르게,실패하는 테스트코드를 먼저 작성하고, 최소한의 통과로 개선하고, 리팩토링 하는 사이클로 진행된다.TDD는 테스트만을 위한 기술이 아닌, 소프트웨어 설계 방법론에 가깝다고 한다. TDD의 아이러니 중 하나는 테스트 기술이 아니라는 점이다. TDD는 분석 기술이며, 설계 기술이기도 하다. - 켄트 벡 2. TDD 사이클: Red - Green - Refactor TDD는 3단계 사이클로 진행된다고 한다. 1. Red 아직 구현되지 않은 기능에 대해 테스트부터 먼저 작성실패되도록 테스트를 구성하고, 코드를 테스트를 통과하기 위해 최소한으로 개선한다..
테스트 가능한 구조소프트웨어를 설계할 때 자동화된 테스트를 쉽게 설계하고, 실행할 수 있도록 만든 코드구조.품질, 안정성, 유지보수성을 높이는데 중요할 역할을 수행 테스트가 가능하려면? 1. 단일책임원칙(SRP)을 잘 따라야 한다. 단일책임원칙이란? - 각 클래스나 함수가 하나의 책임만 가지도록 설계 만약 어떤 함수나 객체가 여러 개의 책임을 가지고 있게 된다면, 테스트를 하기 위한 하나의 기능만 분리해서 테스트하기가 어려워진다.또한 그 객체에 대해서 테스트가 실패했을 때 여러 책임을 가지고 있다면, 그 테스트한 기능만의 문제인지 혹은 복합적인 이유 때문인지 알아내기 어려워진다.단일책임원칙을 잘 지킨 코드는 그 객체의 책임이 분명하여, 그 하나의 책임에 대한 테스트코드를 짜기 수월해진다. 2. 의존성 주..
테스트코드 - 해당 코드가 의도하는 대로, 오류 없이 잘 동작하는지 확인하기 위한 코드GWT 패턴이란?(Given - When - Then)Given(준비)주어진 이란 뜻으로 테스트를 위한 초기상황 또는 변수, 객체 등을 설정하는 부분→ 테스트 환경을 준비하는 단계 When(언제?)실제로 테스트 하려는 기능, 메서드 등의 테스트를 실행하는 단계 Then(그래서?)실행을 검증하는 단계로 예상결과가 실제와 일치하는지 확인하는 단계func testDownloadRequestWithProgress() { // Given let randomBytes = 1 * 1024 * 1024 let urlString = "https://httpbin.org/bytes/\(randomBytes)" ..
개발에 있어서 Test code 작성은 좋은 코드를 작성하기 위해 필수불가결한 요소이다.내가 짠 코드가 제대로 동작하는지, 에러가 발생하는 부분이 어디인지, 그리고 발생했을때 대처가 제대로 되는지 등 다양한 테스트를 통해서,조금 더 좋은 코드를 작성할 수 있게 된다. 오늘은 테스트코드 작성에 원칙중 하나인 FIRST , RIGHT 원칙에 대해 알아보려고 한다. FIRST 원칙 1. F - Fast(속도)테스트는 빨라야 한다 - 테스트가 느리면 자주 실행하기 어려워지며, 유용성이 떨어진다→ 네트워크 호출이 실제로 일어나지 않고 MOCK 객체를 사용하여 네트워크 요청을 모방하기 때문에 테스트는 빠르게 실행 2. I - Independent / Isolated (독립적)테스트는 독립적이어야 한다. 하나의 테..