2012-04-08 4 views
5

json 응답을 반환하는 컨트롤러를 테스트 중이지만 h2 데이터베이스가 자동 증가 ID를 재설정하지 않았으므로 처음으로 테스트가 실패합니다. 조명기를 사용하거나 수동으로 객체를 생성하는 것도 동일한 문제입니다.h2에서 자동 증가 재설정

@Before 
public void setUp() { 
    Fixtures.deleteAllModels(); 
    Fixtures.loadModels("data.yaml"); 
} 

이 문제를 해결하는 방법은 무엇입니까?

답변

12
, 당신의 플레이 응용 프로그램을 시작합니다 (로컬 플레이 응용 프로그램을 실행하는 경우)이 URL로 브라우저를 발사

:

http://localhost:9000/@db 

이 H2의 DB를 입력하고 아래의 명령을 입력하고 실행

ALTER TABLE <table_name> ALTER COLUMN <column_name> RESTART WITH 1 
프로그래밍 방식으로이 작업을 수행하려는 경우

, Fixtures.executeSQL()은 자세한 내용

유용 할 수 확인 할 수 http://www.h2database.com/html/grammar.html#alter_table_alter

,691 당신은 스프링을 사용하는 경우
1

, 나는 각 테스트하여 dB 단위를 재설정, 새로운 응용 프로그램 컨텍스트를 사용하도록 @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)

를 사용하여 제안이 blog post을 발견했다.