ios

단위 테스트 (Given, When, Then) 활용

junsmustLim 2020. 6. 23. 20:34

클린 코드를 읽으면서 단위 테스트의 중요한 부분을 요약해보겠습니다.

 

 

TDD 법칙 세 가지

 

1. 실패하는 코드를 작성하

2. 컴파일에 통과하는 코드를 작성

3. 실패했던 코드들을 통과할 정도로 수정하면서 실제 코드를 작성

 

 

 

[테스트 코드를 짤 때 주의할 점]

 

-> 테스트 코드는 실제 코드 못지 않게 중요

-> 테스트 코드는 사고와 설계와 주의가 필요

 

 

 

[테스트 케이스를 가지고 있을 때]

 

-> 테스트 코드가 있으면 코드 변경에 두렵지 않을 수 있다.

-> 유연성, 유지보수성, 재사용성을 갖는다.

-> 변경이 쉬어진다.

 

 

 

[깨끗한 테스트 코드를 만드려면?]  

 

가독성, 가독성......

 

 

 

[테스트 코드 구조]

 

1. 테스트 자료 생성

2. 자료를 조작

3. 조작한 결과가 옳바른지 확인

ps. 테스트 코드는 진짜 필요한 자료 유형 과 함수만 사용 , 누가봐도 알아볼 수 있도록!!

 

 

 

클린 코드를 읽고난 후,  기존에  작성한 테스트 코드는 돌아가는 코드인지 확인만 하는 코드, 누가봐도 이해하기 힘든 코드였습니다. 그래서 이러한 문제점을 책에서 읽은 구조로 바꾸고자 아래의 블로그를 발견하여 제 프로젝트에 적용해보니 코드의 가독성, 재사용성 부분에서 한결 좋아진거 같습니다. 

 

 

https://medium.com/fantageek/testing-in-swift-with-given-when-then-pattern-cd1a4e1737f9

 

Testing in Swift with Given When Then pattern

Spec

medium.com

이 블로그를 참고하여 given, when, then 패턴을 사용하여 테스트 코드를 작성하였습니다. 

 

 

 

먼저 XCTestCase 클래스에 extension으로  given, when, then 함수를 추가하였습니다. 

 

 

[given, when,then 함수들의 용도]

 

1. 테스트 자료 작성 = given(desc

2. 자료를 조작 = when

3. 조작한 결과가 옳바른지 확인 = then 

 

 

[given, when, then 함수의 전달인자]

 

1. description: String   : 테스트 데이터 작성시 원하는 구문을 작성할 수 있음

2. (throws->())   :  테스트 데이터 작성 

 

 

 

아래는 위 블로그를 읽고 활용한 코드입니다. 잘못된 부분이 있다면 아래 댓글을 남겨주시면 갑사하겠습니다. 

 

 

 

 

 

이상입니다. 허름한 글 읽어주셔서 감사합니다.