Как я могу очистить все данные теста между двумя методами модульного тестирования? - PullRequest
0 голосов
/ 03 июля 2019

Я хочу написать несколько модульных тестов для Flowable, но разные методы могут иметь конфликты данных. Что я должен сделать, чтобы очистить данные теста между двумя методами тестирования?

Я попробовал аннотацию @DirtiesContext, но она не сработала.

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")
@Import(TestConfig.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
public class FlowableTest {
    @Autowired
    private ProcessEngine processEngine;

    @Test
    public void test() {
        IdentityService identityService = processEngine.getIdentityService();
        Group defaultGroup = identityService.newGroup("default");
        defaultGroup.setName("233333");
        identityService.saveGroup(defaultGroup);
    }

    @Test
    public void test2() {
        IdentityService identityService = processEngine.getIdentityService();
        Group defaultGroup = identityService.newGroup("default");
        defaultGroup.setName("233333");
        identityService.saveGroup(defaultGroup);
        // do some thing
    }
}

Это сообщение об ошибке.

Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique index or primary key violation: "PUBLIC.PRIMARY_KEY_6B ON PUBLIC.ACT_ID_GROUP(ID_) VALUES 1"; SQL statement:
insert into ACT_ID_GROUP (ID_, REV_, NAME_, TYPE_)
    values (
      ?,
      1, 
      ?,
      ?
    ) [23505-199]

И затем я хочу создать таблицы вручную перед каждым методом, я нашел «flowable.h2.create.history.sql» и «flowable.h2.create.engine.sql» в "flowable-engine-6.4.1.jar", но когда я перезапустил эти модульные тесты, я обнаружил, что пропало много столбцов.

Есть ли простой способ очистить все данные испытаний?

...