데이터 액세스 계층 또는 대부분의 응용 프로그램 스택을 사용하여 통합 테스트를 수행하는 경우. 여러 테스트가 동일한 데이터베이스에서 실행되는 경우 서로 충돌하지 않도록하는 가장 좋은 방법은 무엇입니까?데이터베이스 통합 테스트
답변
트랜잭션.
무엇 레일 유닛 테스트 프레임 워크에 루비가하는 것은 이것이다는 :
Load all fixture data.
For each test:
BEGIN TRANSACTION
# Yield control to user code
ROLLBACK TRANSACTION
End for each
이 없음 변경
- 테스트가 그것 인 -있는 동안 다른 스레드에 영향을주지 않습니다 데이터베이스로 만드는 것을 의미한다 진행
- 다음 테스트의 데이터는 이전 테스트에서 오염되지 않았습니다.
- 이것은 각 테스트의 데이터를 수동으로 다시로드하는 것보다 약 1 배 빠른 속도입니다. 하나
I이 내가 무료에서 Wildebeest의 오리온 에드워즈 '모두 답변을 받아 원
간단한 데이터베이스 애플리케이션의 경우, SQLite을 사용하는 것이 매우 중요합니다. 이를 통해 각 테스트마다 고유 한 독립형 데이터베이스를 가질 수 있습니다.
그러나 일반적인 SQL 기능을 사용하거나 SQLite와 프로덕션 데이터베이스 시스템 간의 약간의 차이점을 클래스 뒤에 숨길 수있는 경우에만 작동합니다.하지만 SQL에서 상당히 쉬워졌습니다. 응용 프로그램을 개발했습니다.
정말 멋진 생각하지만, 그것은 나를 보자하지 않을 것입니다. 내가 이것을하고 싶었던 이유는 이것이 이들을 수행하는 두 가지 주요 방법이라는 결론에 이르렀지만 선택해야하는 것은 개별적인 경우 (주로 데이터베이스의 크기)에 달려 있습니다.
서로 다른 성능이나 유효성에 영향을 미치지 않도록 다른 시간에 테스트를 실행하십시오.
Wildebeest의 답변에 덧붙여서 HSQLDB을 사용하여 각 테스트에서 DB의 깨끗한 인스턴스를 얻는 비슷한 유형의 테스트를 수행했습니다.
여기에있는 다른 답변 중 하나에서 레일 단위 테스트 프레임 워크만큼 영리하지는 않지만 테스트 또는 테스트 그룹마다 고유 한 데이터를 만드는 것이 다른 방법입니다. 이 솔루션의 지루함 수준은 보유하고있는 테스트 케이스의 수와 테스트 케이스가 서로 얼마나 의존적인지에 따라 다릅니다. 지루함은 테스트 당 하나의 데이터베이스 또는 종속 테스트 그룹이있는 경우에 유효합니다.
테스트 스위트를 실행하면 처음에 데이터를로드하고 테스트 스위트를 실행하고 결과를 언로드/비교하여 실제 결과가 예상 결과를 충족하는지 확인합니다. 그렇지 않은 경우주기를 다시 수행하십시오. 로드, 스위트 실행, 언로드/비교.
- 1. 통합 (셀레늄) 테스트 후 롤백 데이터베이스
- 2. 롤백 - 저장소 통합 테스트
- 3. 통합 테스트를위한 별도의 데이터베이스
- 4. JPA와 Spring의 통합 테스트
- 5. 통합 테스트 모범 사례
- 6. 통합 테스트 구성 요소
- 7. 통합 테스트를위한 Incite 데이터베이스 오류
- 8. 단위 테스트 데이터베이스
- 9. 통합 테스트 자세히
- 10. 통합 테스트 받는다는 플러그인
- 11. 레일 : 통합 테스트 데이터
- 12. 윈저와 WCF 통합 테스트
- 13. TeamCity의 WCF 통합 테스트
- 14. 오이없는 Rspec 통합 테스트?
- 15. 화이트 통합 테스트
- 16. 통합 테스트 모범 사례
- 17. CruiseControl과 YUI 테스트 통합
- 18. 레일 통합 테스트
- 19. UDP 알고리즘의 통합 테스트
- 20. 랜덤 결과로 통합 테스트
- 21. Jpa 통합 테스트 Persistence.xml
- 22. 통합 캔버스 테스트
- 23. 기능/통합 테스트 및 데이터베이스 롤백을 자동화하는 방법
- 24. SQL Server 연속 통합 테스트 용 데이터베이스 백업/복원
- 25. 플래시 및 데이터베이스 통합
- 26. salesforce 데이터베이스 통합
- 27. 메이븐 테스트/resources 디렉토리 및 통합 테스트
- 28. python & maven (단위 테스트 통합)
- 29. PHPUnit과 PHPT 테스트 케이스 통합
- 30. 스프링 유닛/통합 테스트 설정
나는 항상 그 stackoverflow에 대한 문제를 찾습니다. 두 가지가 모두 좋다는 것을 정말로 말하고 싶을 때 선택의 문제입니다. 둘 다 똑같이 유용하다면 유사한 번호로 투표를 할 것이므로 맨 위에 머무르십시오. 사람들이 결정하자 :) –