HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🚀
Random Bit Flip
/
🚀
[2기 - 우기] 4주차 RBF
/
Spring TestContext Framework

Spring TestContext Framework

@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 사용 참고 링크

https://pjh3749.tistory.com/241

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 이용할 때 어떤 메서드 쓸수있는지 참고가능