๐ŸƒTDD ๊ฐœ๋ฐœ - Repository Test 2

dev_itzel_02โœจยท2025๋…„ 2์›” 6์ผ

๐ŸƒJavaSpring

๋ชฉ๋ก ๋ณด๊ธฐ
4/11
post-thumbnail

์ด์ „์˜ ํฌ์ŠคํŠธ์—์„œ ํ…Œ์ŠคํŠธ์šฉ db h2 ์„ค์ •๊นŒ์ง€ ๋งˆ์ณค๋‹ค.
์ด์–ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

๐Ÿ“‘Test ์ฝ”๋“œ ์ž‘์„ฑ

@ExtendWith(SpringExtension.class)
@DataJpaTest
@ActiveProfiles("test")  // application-test.properties ์ ์šฉ
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.ANY)  // H2 ์‚ฌ์šฉ
public class CampusRepositoryV2Test {

    @Autowired
    private CampusRepositoryV2 campusRepository;

    @Test
    @DisplayName("๋นˆ ๋“ฑ๋ก ํ…Œ์ŠคํŠธ")
    public void CampusRepositoryIsNotNull() {
        assertThat(campusRepository).isNotNull();
    }
}

๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋นˆ์ด ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ๋จผ์ € ํ…Œ์ŠคํŠธํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

@Repository
public interface CampusRepositoryV2 extends JpaRepository<CampusEntity, Integer> {

}

๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.
JpaRepository ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์œผ๋ฉด @Repository ์–ด๋…ธํ…Œ์ด์…˜์„ ๋”ฐ๋กœ ๋‹ฌ์•„์ฃผ์ง€ ์•Š์•„๋„ ์ž๋™ ๋“ฑ๋ก๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
๊ทธ๋ƒฅ ํ™•์‹คํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋…ธํ…Œ์ด์…˜์„ ๋‹ฌ์•„๋‘์—ˆ๋‹ค.

๐Ÿšจ UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer'
์ด์ „์— ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋‹ค.

์ด ์˜ค๋ฅ˜๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DataSource)๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜์˜€๋‹ค. Spring Boot๊ฐ€ DataSourceScriptDatabaseInitializer๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ํ•„์š”ํ•œ ๋นˆ(์˜ˆ: DataSource)์„ ์ฐพ์„ ์ˆ˜ ์—†์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • @DataJpaTest๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ H2 (์ธ๋ฉ”๋ชจ๋ฆฌ DB)๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š”๋ฐ, application.yml ๋˜๋Š” application.properties์— H2 ๊ด€๋ จ ์„ค์ •์ด ์—†์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰๐Ÿผ ํ…Œ์ŠคํŠธ์šฉ application-test.properties ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด h2 ์„ค์ •์„ ํ•ด์คŒ์œผ๋กœ์จ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

โœ… ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์—์„œ @ActiveProfiles("test") ์ง€์ •

ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์‹œ ์šด์˜ DB๊ฐ€ ์•„๋‹ˆ๋ผ application-test.properties๊ฐ€ ์ ์šฉ๋˜๋„๋ก ์„ค์ •!

test successโ—

profile
๐Ÿœ๐Ÿ‘ฃsteadiness๐Ÿœ๐Ÿ‘ฃ

0๊ฐœ์˜ ๋Œ“๊ธ€