@SpringJunitConfig
- 테스트 클래스에 붙이는 어노테이션으로 해당 어노테이션을 붙이면 Spring의 bean들을 Junit Test시에 Autowire 가능하게 해줌! — Spring Integration test
@ContextConfiguration
- 해당 어노테이션은 위의 어노테이션에 포함되어 있음
- Spring Integration Test를 위해 ApplicationContext를 로드함
- XML Resource를 통해
- @Configuration 을 통해
@SpringJuintConfig value, classes field( 똑같은듯함)
- 해당 field에 @Configuration으로 쓸 클래스를 명시함. <ClassName>.class 와 같이
@SpringJuintConfig - initializer field
- application context를 initialize할 때의 동작을 커스텀하게 명시할 수 있음
public class TestContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { @Override public void initialize(ConfigurableApplicationContext applicationContext) { var config = aMysqldConfig(v8_0_11) .withCharset(UTF8) .withPort(2215) .withUser("test-user", "test111!") .withTimeZone("Asia/Seoul") .build(); anEmbeddedMysql(config) .addSchema("order_mgmt", classPathScript("schema.sql")) .start(); } } @SpringJUnitConfig(value = TestConfig.class, initializers = TestContextInitializer.class)
assertj, hamcrest 사용 참고 링크
assertj soft assertion
테스트를 위한 많은 프레임워크들 중에 AssertJ만이 특별한 기능을 제공합니다. 그것은 soft assertion라고 불리는데, 동시에 여러개의 테스트를 할 때 중간에 에러가나도 멈추지 않고, 모든 검사를 실행하고 결과를 보여줍니다.
@Test public void soft_assertion_assertj_test(){ User user = new User("Yuri", "Bushnev", "bushnevyuri@gmail.com"); SoftAssertions softly = new SoftAssertions(); softly.assertThat(user).isNotNull(); softly.assertThat(user.getName()).isEqualTo("Yuri"); softly.assertThat(user.getSurename()).isEqualTo(""); softly.assertThat(user.getEmail()).isEqualTo("bushnevyurigmail.com"); softly.assertAll(); }
https://assertj.github.io/doc/#assertj-core-group-assertions — assertj. 도큐먼트 2.5.11. Iterable and array assertions. 이 부분에 list 이용할 때 어떤 메서드 쓸수있는지 참고가능