✔ TDD

: test driven development
테스트 코드를 먼저 만들고 개선 및 확장을 하는 개발 방식

✔ Test

의도대로 동작하는지 프로그램 품질 검증.
테스트를 사용하면 여러 과정을 최소화할 수 있음.

ArticleService를 검증하는 테스트 코드를 작성해보겠다.

테스트할 메소드를 선택하면 아래 사진처럼 테스트 자바 파일이 만들어진다.

◾ @SpringBootTest

스프링 부트와 연동해서 테스트하기.

@SpringBootTest
class ArticleServiceTest {
	.
    .
    .
}

◾ @Test

//존재하지 않는 id show 실패 test 메소드

 	@Test
    void show() {
		//예상 결과
        Long id = -1L;
        Article expected = null;

		//실제 결과
        Article article = articleService.show(id);

		//두 결과를 비교
        assertEquals(article, expected);
    }

◾ @Transactional 의 roll back

@Transactional 의 롤백은
1. 기본적으로 메소드 수행 실패로 동작
2. 테스트 코드의 경우 테스트 성공 후 기본 롤백
(테스트 코드가 실제 DB에 영향을 끼쳐선 안되기 때문)

따라서 여러 테스트를 한번에 테스팅하기 위해서 트렌젝션 해준다.

◾ assertEquals(expected, article)

예상한 값과 실제 값이 동일한지 비교하는 메소드

◾ delete( ) 메소드의 값

ArticleService의 delete() 메소드가 DB에서 데이터를 삭제하는 것은 맞지만, 해당 코드에서 삭제 된 값을 반환하도록 만들어졌다.

따라서,
Article a = articleService.delete(id);
a는 null이 아닌 id의 데이터가 들어있다.

	@Test
    @Transactional
    void delete1() {
        //존재하는 id 입력 성공 test
        
        //예상
        Long id = 1L;
        Article expected = new Article(id,"Hello","Content....");

        //실제
        Article article = articleService.delete(id);

        //비교
        assertEquals( expected.toString() , article.toString() );
    }

1개의 댓글

comment-user-thumbnail
2022년 5월 3일

열정 열정 열정

답글 달기

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN