woowacourse / tecoble-comments

0 stars 0 forks source link

tecoble/post/2020-09-15-test-isolation/ #15

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

인수테스트에서 테스트 격리하기 | javable

테스트 격리란?

https://woowacourse.github.io/tecoble/post/2020-09-15-test-isolation/

wdh2100 commented 3 years ago

@SpringBootTest 너무 무겁지 않나요??

hojinDev commented 3 years ago

JPA의 경우 deleteAll, deleteById메서드를 호출하면 곧 바로 DELETE 쿼리가 수행되는 것이아니라 SELECT로 조회한 뒤에 DELETE가 나간다

deleteAllInBatch 를 하게 되면 select 조회 없이 삭제가 됩니다.

g6ling commented 3 years ago

저 같은 경우는 testcontainer 을 사용해서 테스트을 하였습니다. testcontainer + 병렬 테스팅 하면 그나마 좀 낫습니다. 그래도 테스트 한번 돌릴 때 몇분 ~ 몇십분 걸리는 작업들도 잇는데 어차피 CI 쪽에서 하는거여서 여기서 1~2분 더 단축 시키는게 의미 없어 보여서 대략 20분까지를 목표로 잡고 이거 보다 오래걸리면 다시 좀 빠르게 하고 이런식으로 하였습니다. 그리고 TestContainer 의 Extension 을 적절히 만들어서 테스트 데이터 주입까지 하면 DB 쪽 설정 바뀌어도 보다 유연하게 대처 가능하더라구요.