0
@Transactional을 사용하여 DAO 통합 테스트 메소드에 주석을 달려면 Spring 테스트는 각 테스트 메소드가 완료된 후 데이터베이스에 대한 모든 변경 사항을 기꺼이 롤백합니다. @BeforeClass 메서드로 테스트 데이터를 한 번로드하고 모든 정리 작업을 처리 할 수 있기 때문에 매우 편리합니다.Spring Test를 사용한 DAO 통합 테스트의 자동 롤백이 좋은 방법입니까?
하지만 커밋 중에 발생할 수있는 오류를 발견 할 수있는 기회를 놓치기 때문에 이것이 좋은 방법인지는 의문입니다. DAOs의 dbunit 통합 테스트에서 정리를 돕기 위해 트랜잭션을 사용하는 것에 대한 합의가 무엇입니까 ??
나는이 접근 방식에 매우 만족해했습니다. 또한, 테스트 방법을 사용하기보다는 CUT별로 테스트 데이터를 한 번로드하면 통합 테스트에 많은 시간을 절약 할 수 있습니다. 이 모든 점에서 유일한 단점은 JUnit @ BeeClass (어리석게)는 주석이 달린 메소드가 정적이어야한다는 것입니다. 그래서 각 CUT 전에 테스트 데이터를로드하는 또 다른 방법을 찾아야 만했습니다. 필자는 자신의 도우미 클래스를 작성했습니다. – HDave
JUnit은 각 테스트 메소드를 호출하기 전에 테스트 클래스의 새 인스턴스를 만들기 때문에 @BeforeClass가 정적이어야합니다. 이렇게하면 테스트간에 부작용이 없음을 확인할 수 있습니다. 각각은 테스트 클래스의 인스턴스를 가지고 있습니다. –