728x90
반응형
먼저 읽어볼만한 글
라이브러리 종속성 추가
/build.gradle 파일에 아래 내용을 추가한다.
dependencies {
testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test'
}
spring-boot-starter-test
Starter POM의 추가 만으로 Spring Test, JUnit, Hamcrest, Mockito를 모두 사용하여 테스트 클래스를 작성할 수 있다.
테스트 클래스 작성
/src/test/java/com.jsonobject.example/ExampleTest.java 파일을 아래와 같이 작성한다.
import com.jsonobject.example.Application;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.WebIntegrationTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@ActiveProfiles(profiles = "test")
public class ExampleTest {
@Autowired
@Qualifier("anotherDAO")
private SomeDAO someDAO;
@Resource(name = "anotherService")
private SomeService someService;
@Autowired
private SomeController someController;
@Test
public void aTest() {
// 테스트 코드 작성
}
@Test
public void bTest() {
// 테스트 코드 작성
}
}
- 클래스에
@SpringApplicationConfiguration
를 명시하면 ApplicationContext를 선택하여 테스트를 할 수 있다. 이에 따라 클래스 멤버에 애플리케이션 컨텍스트의 빈을 주입하여 테스트에 사용할 수 있다.@Autowired
,@Qualifier
,@Resource
모두 사용 가능하다. - 클래스에
@WebIntegrationTest
를 명시하면 실제 웹 애플리케이션이 구동되는 환경과 동일하게 HTTP 요청 테스트가 가능하다. TestRestTemplate 클래스를 사용한다. - 클래스에
@ActiveProfiles
를 명시하면 테스트 실행시 적용될 프로파일을 적용할 수 있다. - 메써드에
@Test
를 명시하면 테스트 메써드로 선언되어 메써드 단위 테스트가 가능해진다. 클래스 단위 테스트시 실행될 대상 메써드가 된다. - JUnit에서는 클래스 단위 테스트 실행시 메써드 간의 테스트 순서가 임의로 진행된다. 클래스에
@FixMethodOrder
를 명시하면 테스트 메써드 간의 실행 순서를 결정할 수 있다. MethodSorters.NAME_ASCENDING은 메써드의 이름 순으로 실행 순서를 결정하겠다는 의미이다.
참고 글
출처: http://jsonobject.tistory.com/229 [지단로보트의 블로그]
728x90
반응형
'SPRINGBOOT > 소스코드' 카테고리의 다른 글
Spring Boot, OAuth 2.0 서버 구현하기 (0) | 2017.10.26 |
---|---|
IntelliJ IDEA에서 Spring Boot 웹 프로젝트 생성하기 (0) | 2017.10.26 |
Spring Boot 프로젝트에서 Profile 적용하기 (0) | 2017.10.26 |
Spring Boot, Multipart 파일 업로드 구현하기 (0) | 2017.10.26 |
Spring Boot, @Async 비동기 실행 로직 구현하기 (0) | 2017.10.26 |
Spring Boot, JSON 변환, LocalDateTime을 ISO8601으로 출력하기 (0) | 2017.10.26 |
Spring Boot, 작업 스케쥴러 데몬 구현하기 (0) | 2017.10.26 |
Spring, RestTemplate으로 REST 클라이언트 구현하기 (0) | 2017.10.26 |