Нужно реализовать Thread.sleep (100) в контексте функции ожидания, чтобы оценить время ожидания? - PullRequest
0 голосов
/ 03 сентября 2018

Следующий тестовый случай не дает 100 сна, но если сон увеличился, тест проходит успешно. Но так как это ленивый подход, я хочу реализовать это в функции для оценки времени сна. Такой, что он отлично работает без статического значения сна в разных средах.

    public void testDeRegistration() throws Exception {
        storeEntity(EntityType.PROCESS, "summarize4");
        Process mockProcess = getStore().get(EntityType.PROCESS, "summarize4");
        mockProcess.setParallel(2);
        Date startTime = EntityUtil.getStartTime(mockProcess, cluster);
        ExecutionInstance instance1 = new ProcessExecutionInstance(mockProcess, new DateTime(startTime), cluster);
        // Schedule 3 instances.
        SchedulerService.JobScheduleRequestBuilder request = (SchedulerService.JobScheduleRequestBuilder)
  *emphasized text*              scheduler.createRequestBuilder(handler, instance1.getId());
        request.setInstance(instance1);
        scheduler.register(request.build());
        ExecutionInstance instance2 = new ProcessExecutionInstance(mockProcess,
                new DateTime(startTime.getTime() + 60000), cluster);
        SchedulerService.JobScheduleRequestBuilder request2 = (SchedulerService.JobScheduleRequestBuilder)
                scheduler.createRequestBuilder(handler, instance2.getId());
        request2.setInstance(instance2);
        scheduler.register(request2.build());
        ExecutionInstance instance3 = new ProcessExecutionInstance(mockProcess,
                new DateTime(startTime.getTime() + 120000), cluster);
        SchedulerService.JobScheduleRequestBuilder request3 = (SchedulerService.JobScheduleRequestBuilder)
                scheduler.createRequestBuilder(handler, instance3.getId());
        request3.setInstance(instance3);
        scheduler.register(request3.build());

        // Abort third instance
        stateStore.putExecutionInstance(new InstanceState(instance3));
        scheduler.unregister(handler, instance3.getId());

        Thread.sleep(100);
        Assert.assertEquals(((MockDAGEngine) mockDagEngine).getTotalRuns(instance1), new Integer(1));
        Assert.assertEquals(((MockDAGEngine) mockDagEngine).getTotalRuns(instance2), new Integer(1));
        // Second instance should not run.
        Assert.assertEquals(((MockDAGEngine) mockDagEngine).getTotalRuns(instance3), null);
    }

1 Ответ

0 голосов
/ 03 сентября 2018

Попытка ожидание

Awaitility.await().atMost(500, TimeUnit.MILLISECONDS)
    .until(() -> Objects.equals(((MockDAGEngine) mockDagEngine).getTotalRuns(instance1), 1))

И то же самое для второго экземпляра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...