Integration test Best practice

Falcon·2023년 7월 13일
1

javascript

목록 보기
28/28
post-thumbnail

DB

@Transactional 전략

[장점]

구현이 쉬움.

[단점]

  • DB에 따라 Transactional 미지원 가능성
  • node.js의 경우 Transaction rollback 코드 Coupling
    Node.js 에선 Spring 처럼 날먹 @Transactional Annotation 이 없기 때문에 별도 코드가 필요하다.

Cleaning after all tests

describe() 내에 test 별로 서로 다른 데이터를 넣는다.
실제 DB 시나리오에 가깝다.

대전제: 각 테스트는 고유한 record 만을 건드려야한다.

[장점]

Parallel Test 용이

[단점]

Input test case uniqueness is required.
독립이 보장되어야함. (random value generation 이 필요할 수 있음.)

Clean after every single test

[장점]

Test case uniqueness is not required.

[단점]

Parallel test 불리
Multi process 인 경우 concurrent test 실행시 충돌가능.
ex) 특정 Process 에서는 DB 삭제중이면서 다른 Process 에서는 DB 조회중

profile
I'm still hungry

0개의 댓글