본문 바로가기
카테고리 없음

토비의 스프링을 읽고 막 적어보자 (3)

by 상5c 2019. 10. 23.

191023

 

2장 테스트

스프링이 개발자에게 제공하는 가장 중요한 가치는 객체지향과 테스트.

스프링의 핵심인 IoC와 DI는 객체지향의 근본과 가치를 손쉽게 적용하고 사용하게 도와준다.

만들어진 코드를 확신할 수 있게 해주고 변화에 유연하게 대처하는 자신감을 주는 기술이 테스트이다.

 

테스트하고자 하는 대상이 명확하다면 그 대상에만 집중해서 테스트하는 것이 바람직하다.

과정도 복잡해지고 원인파악도 힘들다.

 

작은 단위의 코드에 대해 테스트를 수행한 것을 단위 테스트라고 부른다.

단위는 작을수록 좋다.

다른 코드를 신경쓰지 않고 참여하지 않으면서 테스트가 동작하면 좋다.

 

수동으로 DB에 값을 저장하고 메인문을 실행하고 결과를 비교하고 이러한 작업은 번거롭다.

이를 해결하기위해 자동화된 테스트를 위한 xUnit 프레임워크를 사용한다.

이를 만든 켄트 벡은

테스트란 개발자가 마음 편하게 잠자리에 들 수 있게 해주는 것

이라고 했다. (공감x100)

 

프레임워크는 개발자가 만든 클래스에 대한 제어 권한을 넘겨받아 주도적으로 애플리케이션의 흐름을 제어한다.

JUnit은 그러한 프레임워크다.

요구 조건 두가지는

첫째 메소드는 public이어야 하고

둘째 메소드에 @Test 어노테이션을 붙이는 것이다.

 

if (!user.getName().equals(user2.getName())) {...}

이 if문을 JUnit으로 변경시

assertThat(user2.getName(), is(user.getName()));

 

assertThat() 메소드는 첫 파라미터의 값을 뒤에 나오는 매처라 불리는 조건으로 비교해서 일치하면 다음으로 넘기고 아니면 테스트를 실패하도록 만들어준다.

is()는 매처의 일종으로 equals()로 비교해주는 기능을 가졌다.