기본적인 예제를 위한 도메인, 레포지터리를 만든다.

도메인 : 비즈니스의 메인 객체 (ex, 회원, 주문 등). VO객체와 다른 것인지는 답변 보고 다시 수정

레포지터리 : 디비에 접근하여 도메인 객체를 관리. DAO객체와 다른 것인지는 답변 보고 다시 수정

 

도메인 객체는 VO와 똑같이 만들었다.

레포지터리도 DAO와 똑같이 만들었다. (단, 디비는 사용하지 않고 메모리에 저장하는 식으로 만듦. 나중엔 디비까지 사용할듯)

 

test패키지(?)에 repository 패키지를 따로 만들었다.

이 안에 JUnit 테스트 실행할 RepositoryTest 클래스 생성

 

Repository 클래스에 있는 모든 함수에 대한 테스트함수를 하나씩 만든다.

모든 테스트 함수는 @Test 어노테이션으로 표시한다. 

테스트함수는 함수 개별적으로도 클래스 전체적으로도 테스트가 가능하다.

테스트함수에서 Assertions.assertThan(o1).isEqualTo(o2) 를 적극적으로 사용한다. 예상 결과와 실제 결과가 일치하는지 확인하기 위함.

static import를 통해 assertThat() 바로 호출도 가능하다. (Alt + Enter -> static import) 

 

클래스 전체적으로 테스트를 수행할 경우 테스트 함수들의 호출 순서는 보장되지 않는다. 따라서 메모리가 겹쳐 잘못된 결과를 초래할 수 있다. 이를 막기 위해 @AfterEach를 사용한다.

 

@AfterEach는 각각의 테스트함수가 실행된 뒤 불려오는 콜백메서드를 위한 어노테이션이다.

이 콜백메서드는 메모리를 비우는 등의 동작을 수행하여 테스트함수의 결과가 겹치지 않도록 하는 역할을 수행한다.

 

 

 

 

출처 : www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

+ Recent posts