Chap06

Kyu·2022년 4월 29일
0

기능은 주어진 상황에 따라 다르게 동작한다

예를 들어, 아래코드를 보자

File file = new File("data.txt");
long sum = MathUtils.sum(file);

data.txt가 어떤 상황이냐에 따라 sum의 결과는 익셉션이 나야할 수도있다.

given , when, then

  • 이 구조에 너무 집착하지마라
  • 도움은 되지만, 모든 테스트 메소드를 이렇게 작성해야하는 건 아니다
  • 테스트 코드를 보고 이해하면 된다

외부 상황과 외부 결과

  • 파일데이터를 테스트해야하는 상황
    • 외부상황에 맞게 코드 내에서 모든 상황을 설정한다

외부상태가 테스트결과에 영향을 주지않게 하기

  • 테스트코드는 반복 테스트 하여 언제 실행해도 정상 동작하는게 중요
  • 아이디 중복 체크하는 로직
    • 디비 상태에 따라 중복이 될수도있고 안될수도 있다
    • 떄문에 테스트를 실행할때 미리 디비에서 제거하거나 롤백을 시켜야한다

중요하다고 생각이드는 외부상태와 테스트의 어려움

외부 API를 이용하는 로직인경우 테스트하기가 힘들다 이럴때 "대역(Double)"을 사용하면 편리하다

profile
TIL 남기는 공간입니다

0개의 댓글

관련 채용 정보