====== Springframework Test ======
* [[java:junit|JUnit]]
* [[java:unittest|Java Unit Test]]
* [[http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/context/junit4/SpringJUnit4ClassRunner.html|SpringJUnit4ClassRunner]]
* [[java:junit:database_rider|database-rider]]
* [[springframework:spring_test_dbunit|Spring Test DBUnit]]
* [[springframework:mvc:unittest|Spring MVC UnitTest]]
===== @ContextHierarchy =====
* ''@org.springframework.test.context.ContextHierarchy''
* 컨텍스트간의 계층을 두어 설정. 이 안에 ''@ContextConfiguration''을 계층적으로 선언
===== @ContextConfiguration 이중 지정문제 =====
* ''@ContextConfiguration''로 동일한 클래스를 부모클래스와 자식 클래스에도 중복 지정하자 Spring 3.2.8 + Gradle + JDK 7에서는 JDK Crash가 발생했고, JDK 8 에서는 Proxy 객체를 올바르게 생성하지 못해서 오류가 발생했다.
* ''hs_err_pid'' 파일이 생성되면서 다음 오류 발생.
Caused by: org.gradle.process.internal.ExecException:
Process 'Gradle Test Executor 1' finished with non-zero exit value 134
===== Test Class 자체에 컨텍스트 설정 넣기 =====
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration // 이 부분 추가
public class MySpringTest {
@Configuration
public static class TestConfig {
// 기타 설정..
}
@Autowired //.. injection...
}
===== @TestPropertySource =====
* [[https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/context/TestPropertySource.html|@TestPropertySource]]
===== @IfProfileValue =====
* [[https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/annotation/IfProfileValue.html|IfProfileValue (Spring Framework 5.3.9 API)]]
* 프라퍼티 값에 따라 테스트 실행 여부 결정.
===== WebClient / WebTestClient =====
* [[https://www.callicoder.com/spring-5-reactive-webclient-webtestclient-examples/?fbclid=IwAR2QMj5NdEHL4NHopq_0FCfk-l3dMk46mX2Oy72-MN1Ptu-URVfJImtpXsg|Spring 5 WebClient and WebTestClient Tutorial with Examples | CalliCoder]]