본문 바로가기

Test14

데이터베이스 연동 테스트 나는 테스트를 많이 접하지 않았다. 다만 여러 서적을 읽고 강의를 들으면서 공부하다 보면 반드시 나오는 주제가 있는데, 바로 테스트이다. 테스트는 코드의 품질에도 깊은 연관이 있고 잘 짜인 테스트 케이스는 소프트웨어의 성공으로 이끌 수 있기 때문이다. 이번에 데이터베이스 연동에 대한 테스트는 단지 강의를 듣고 내용을 정리하는 것이다. 깊은 지식을 포함하지 않고 다른 개발자가 어떻게 데이터베이스 연동을 테스트하는지 엿보는 시간이다. 카테고리에 맞게 스프링 부트를 사용하며 아마 기본 전략으로 Junit5를 사용하는 것으로 알고 있다. 1. 기본 설정 스프링 부트는 매우 많은 관례를 포함하고 있다. 그중 하나가 설정 파일에 대한 부분이다. resources 폴더에 있는 appication.properties는.. 2022. 10. 14.
JUnit5 (2) Application Context가 고유한지 테스트를 3가지 방법으로 작성하는데 약간의 불편함이 있었다. junit5에서는 assertThat을 제공해주지 않아서 Hamcrest 라이브러리를 추가해서 사용해봤다. JUnit4에서는 포함되었다고 하는데 JUnit5에서는 제외됐다. org.hamcrest hamcrest-all 1.3 test @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = Configuration.class) public class JUnitTest { //테스트마다 어플리케이션 di @Autowired ApplicationContext context; static Set jUnitTestSet = new HashSe.. 2021. 3. 14.
Test JUnit5에 @BeforEach를 적용한 메서드에 다음과 같은 코드를 추가하고 실행해 보았다. 출력된 context값과 this의 오브젝트 값을 확인하면 context는 3번 모두 동일한 객체를 보여주고 있고. 각 테스트에 대한 객체는 각각 새로운 테스트 객체를 반환하는 것을 확인할 수 있다. 왜 context는 한번일까? JUnit의 확장 기능인 @ExtendWith는 테스트가 실행되기 전에 딱 한 번만 애플리케이션 콘텍스트를 만들고, 테스트 오브젝트가 만들어질 때마다 애플리케이션 콘텍스트 자신을 테스트 오브젝트의 특정 필드에 주입해준다. * 스프링은 설정파일의 종류만큼 애플리케이션 콘텍스트를 만들어 같은 속성을 공유하는 테스트 객체에게 동일한 콘텍스트를 주입해 준다. @Autowired를 사용하면 .. 2021. 3. 14.
JUnit5 (1) Spring을 사용하면 테스트에 대한 접근이 상당히 쉬워진다. JUnit5를 연습하자는 마음으로 시작했다. org.junit.jupiter junit-jupiter-api ${junit.version} test org.junit.jupiter junit-jupiter-engine ${junit.version} test 빌드 툴은 Maven을 사용했으며 버전은 5.7.0을 사용한다. Spring 버전은 4.1.0.RELEASE를 사용하기로 했다. 이 내용은 토비의 스프링을 참고하여 작성하였다. package test; import com.test.test.domain.Configuration; import com.test.test.domain.User; import com.test.test.domain.U.. 2021. 3. 13.