Neo4j Java API: метод возвращает пустой список в тестах JUnit, но работает правильно в обычном классеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Neo4j Java API: метод возвращает пустой список в тестах JUnit, но работает правильно в обычном классе

Сообщение Anonymous »

Когда я вызываю метод issReport из теста JUnit, он возвращает пустой список (0 MyDtos). Однако при вызове того же метода из обычного класса (например, сервиса) он работает корректно и возвращает ожидаемые данные.
Класс сервиса:

Код: Выделить всё

@Override
public List issReport(Transaction transaction, List ids) {
String query = """
MY QUERY
""";

List result = new ArrayList();
for (String id : ids) {
try (Result res = transaction.execute(query, Map.of("id", id))) {
while (res.hasNext()) {
Map row = res.next();
result.add(new MyDtos(
(String) row.get("firstEntityId"),
(String) row.get("secondEntityId"),
(String) row.get("thirdEntityId")
));
}
} catch (Exception e) {
throw new RuntimeException("Failed: " + id, e);
}
}
return result;
}
Тестовый класс:

Код: Выделить всё

@Test
@Order(3)
void testIssReport() {
try (Transaction tx = graphDb.beginTx()) {
List ids = new ArrayList(neo4JCachedData.getCachedReleaseNodes().keySet());

List issueReports = repository.issReport(tx, ids);

Assertions.assertFalse(issueReports.isEmpty(), "Should not be empty for valid releases.");
Assertions.assertEquals(3, issueReports.size(), "Expected exactly 3 issue reports.");

MyDtos firstReport = issueReports.get(0);
Assertions.assertEquals(ids.get(0), firstReport.getFirstEntityId());
Assertions.assertNotNull(firstReport.getSecondEntityId());
Assertions.assertNotNull(firstReport.getThirdEntityId());

}
}
Что я проверил:

[*]Метод initDatabase() заполняет тестовый граф, и узлы/связи существуют ( проверяется с помощью запроса MATCH (n) RETURN COUNT(n).
[*]Вне тестов (например, в классе обслуживания) метод issReport возвращает правильные ожидаемые результаты.
[*]В test данные загружаются посредством транзакций, а тесты выполняются в правильном порядке с использованием аннотации @Order.
[*]Кэш neo4JCachedData содержит все идентификаторы, и я проверил их выходные данные. >


Подробнее здесь: https://stackoverflow.com/questions/793 ... -correctly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»