2015-10-26 2 views
0

Я использую наилегчайшем дб скрипт для настройки базы данных:Сброс последовательности DB каждый тест

CREATE SEQUENCE user_id_seq START WITH 1; 
CREATE TABLE user (
    id   SERIAL   NOT NULL PRIMARY KEY, 
    email   VARCHAR(64)  NOT NULL, 
    nick   VARCHAR(64)  NOT NULL, 
    pw   VARCHAR(64)  NOT NULL, 

    -- role: admin, simple, member, leader, judge 
    role   VARCHAR(64)  NOT NULL, 
    judge   INTEGER   , 
    camp   INTEGER   , 

); 

после первого теста вставляется пользователь и последовательность увеличивается на единицу, прежде чем второй тест, который я могу упасть таблица пользователя, но я не знаю, как вернуть user_id_seq вернуться на 1.

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = BasicApplication.class) 
public class UserRepositoryTest { 

    @Autowired 
    UserRepository userRepository; 

    @Test 
    public void insertUser(){ 

     User user = new User(); 
     user.setNick("roman"); 
     user.setRole("ROLE_ADMIN"); 

     PasswordEncoder pwEncoder = new BCryptPasswordEncoder(); 
     String pw = pwEncoder.encode("123"); 

     user.setPw(pw); 

     userRepository.save(user); 

     long userCount = userRepository.count(); 
     isTrue(userCount == 1); 

     boolean exists = userRepository.exists(1); 
     isTrue(exists); 

     User fetchedUser = userRepository.findOne(1); 

     assertEquals(fetchedUser.getNick(), "roman"); 
     assertEquals(fetchedUser.getPw(), pw); 
     assertEquals(fetchedUser.getRole(), "ROLE_ADMIN"); 

    } 

} 

Любые советы приветствуется.

+1

Возможный дубликат [? Как сбросить последовательность в Oracle] (http://stackoverflow.com/questions/51470/ как-делать-я-сброс-A-последовательность-в-оракула) – Augusto

ответ

Смежные вопросы