При тестировании обновления объекта я также хочу убедиться, что даты работают правильно. В моей сущности у меня есть:Thread.sleep Плохая идея для весенних тестов интеграции?
@PreUpdate
private void onUpdate() {
this.lastUpdated = new LocalDateTime();
}
Когда я проверить бренд получать обновления, я создал бренд, изменяя его, затем вызвать обновление, после которой я refetch бренд утверждать, я мог бы найти его на измененное значение.
Время между сохранением и обновлением часто настолько мал, даты в конечном итоге то же самое:
assertThat(first.getLastUpdated().isBefore(brand.get().getLastUpdated())).isEqualTo(true);
Я решил эту проблему в настоящее время путем добавления в Thread.sleep(100)
вызова между сохранять и обновлять, но моя кишка говорит, что это действительно плохая идея. Мысли?
Я бы посмотрел на это и перестроил свой код, как предлагает принятый ответ. http://stackoverflow.com/questions/11887799/how-to-mock-new-date-in-java-using-mockito Во-вторых, вы должны иметь возможность предположить, что '@ PreUpdate' работает по назначению, и если вы хотите, чтобы ваш метод был аннотирован, выполните небольшой единичный тест, чтобы проверить это. Вы также можете позволить базе данных обрабатывать _on update_ (я бы предпочел это сам), если он поддерживает его –