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개의 댓글