Аннотирование класса, чтобы каждый его метод мог ожидать X мс после выполнения

Я пишу некоторые модульные тесты JUnit для проверки моего объекта доступа к данным DynamoDB. Вот один из тестов.

....
private static DynamoDBMapper ddbMapper;
@BeforeClass
public static void setup() {
  ddbMapper = DynamoDBClients.getTestingDynamoDBMapper();
}

@Before
public void setupTestItem() {
  Item item = new Item();
  item.setItemID(TEST_COUTSE_ITEM_ID);

  // Create an item with every fields populated
  ddbMapper.save(item);
}

@Test
public void test_update_simple_attribute() {
  Item item = ddbMapper.load(Item.class, TEST_ITEM_ID, TEST_ITEM_VARIANT);
  item.setLanguageTag(TEST_LANGUAGE_TAG + "CHANGED");
  ddbMapper.save(item);

  Item updatedItem = ddbMapper.load(Item.class, TEST_ITEM_ID, TEST_ITEM_VARIANT);
  assertEquals(updatedItem.getLanguageTag(), TEST_LANGUAGE_TAG + "CHANGED"); // This field has been changed
}

У меня есть еще тесты, которые обновят элемент и подтвердят, было ли обновление передано в DynamoDB, и я мог бы прочитать его обратно.

Однако я заметил, что если я запускаю эти тесты чаще, я иногда сталкиваюсь с проблемой, что DynamoDB еще не полностью записывает обновленные данные, и когда я загружаю их, они все еще показывают старые данные. Повторный запуск тестов обычно решает проблему.

Я считаю, что DynamoDB использует модель возможной согласованности для записи, поэтому имеет смысл, что обновление может занять немного больше времени, чем скорость выполнения Java. Один из способов смягчить это - сделать так, чтобы тест JUnit приостанавливался на 100 мс или около того.

Но я должен был бы включить некоторый код для приостановки выполнения везде, где я делаю ddbMapper.save() или ddbMapper.delete(), который кажется нереальным для всех моих тестов и тестов, которые я напишу.

Кажется, что я мог бы заняться этим с помощью подхода, основанного на аннотациях. Возможно, реализация аннотации на уровне класса @SuspendAtEndOfMethod и все ее методы могут быть затронуты, мне интересно, возможно ли это?

0 ответов

Другие вопросы по тегам