내 단위 테스트 구성 : JUnit, DBUnit, Spring. 내 봄 맥락에서단위 테스트 중 롤백 자동 생성 테이블 값
나는 임베디드 데이터베이스가 -
<jdbc:embedded-database id="dataSourceSpied">
<jdbc:script location="classpath:test_ddl.sql"/>
</jdbc:embedded-database>
내 단위 테스트 hsqldb는 다음 클래스 수준 주석 함께 :
@ContextConfiguration(locations = "classpath:/test-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
TransactionDbUnitTestExecutionListener.class,
DbUnitTestExecutionListener.class})
내 테스트 스키마가 다음 조각을 :
CREATE TABLE test(
id BIGINT GENERATED BY DEFAULT AS IDENTITY,
name VARCHAR(255) NOT NULL,
...
);
@Transactional
annotati 롤백시 하나의 단위 테스트 방법에서 변경 한 내용이 이지만은 id
값을 지우지 않습니다! 자동으로 생성 된 id
값은 재설정되지 않으므로 단위 테스트는 실행 순서에 따라 달라집니다.
테스트 중에 Spring에서 HSQLDB의 자동 생성 된 db 필드를 재설정하는 방법은 무엇입니까?
아마도 trucate
명령이 도움이 될까요?
방금 테스트의 id 값을 무시 할 수 없습니다
은 설명서를 참조하십시오? – Keppil외래 키가 제대로 설정되었는지 확인하고 foregin 키가 자동 생성 된 id를 참조하는지 확인하고 싶습니다. –