Spring 심화주차/1주차

6. 통합 테스트란 무엇일까

note994 2024. 9. 16. 17:48

단위 테스트 VS 통합 테스트

1. 단위 테스트(Unit Test)

하나의 모듈이나 클래스에 대해 세밀한 부분까지 테스트가 가능하다.

하지만 모듈 간에 상호 작용 검증은 할 수 없다.

2. 통합 테스트(Integeration Test)

두 개 이상의 모듈이 연결된 상태를 테스트 할 수 있다.

모듈 간의 연결에서 발생하는 에러 검증 가능하다.


Spring Boot를 이용한 통합 테스트

통합 테스트

여러 단위 테스트를 하나의 통합된 테스트로 수행한다.

단위 테스트 시 Spring은 동작되지 않는다.

"@SpringBootTest"

스프링이 동작되도록 해주는 애너테이션이다.

테스트 수행 시 스프링이 동작한다.

Spring IoC/DI 기능을 사용 가능하다.

Repository를 사용해 DB CRUD가 가능하다.


ProductServiceIntegrationTest.java
0.00MB

 

기본적으로 test1과 test2 등 테스트들은 각각 따로 돈다. 서로 영향을 받지 않도록 하기 위함이다.

 

따라서 테스트 메서드 밖에서 필드를 만들어도 공유를 할 수가 없다.

ProductServiceIntegrationTest.java

이 애노테이션을 사용하면 필드를 공유할 수 있다.

 

ProductServiceIntegrationTest.java

@SpringBootTest를 사용하면 Spring이 동작하고 IoC/DI 기능을 사용할 수 있다고 말했다.

그래서 @Autowired를 사용해서 필요한 Bean들을 받았다.

ProductServiceIntegrationTest.java

공유로 사용할 필드들이다.

 

이제 테스트 메서드들이 공유된 필드들을 이용해 순서대로 동작하면서 제대로 기능을 수행하는지 테스트를 하게된다.