Neo4j Java API: Methode gibt in JUnit-Tests eine leere Liste zurück, funktioniert aber in einer regulären Klasse korrektJava

Java-Forum
Guest
 Neo4j Java API: Methode gibt in JUnit-Tests eine leere Liste zurück, funktioniert aber in einer regulären Klasse korrekt

Post by Guest »

Wenn ich die issReport-Methode aus einem JUnit-Test heraus aufrufe, gibt sie eine leere Liste zurück (0 IssueReportDto). Wenn jedoch dieselbe Methode von einer regulären Klasse (z. B. einem Dienst) aufgerufen wird, funktioniert sie ordnungsgemäß und gibt die erwarteten Daten zurück.
Dienstklasse:

Code: Select all

@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;
}
Testklasse:

Code: Select all

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

List issueReports = repository.method(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());

}
}
Was ich überprüft habe:
  • Die Methode initDatabase() füllt das Testdiagramm und es sind Knoten/Beziehungen vorhanden ( überprüft mit MATCH (n) RETURN COUNT(n)-Abfrage).
  • Außerhalb von Tests (z. B. in einer Serviceklasse) gibt die issReport-Methode die korrekten erwarteten Ergebnisse zurück.
  • Im Test Daten werden über Transaktionen geladen und Tests werden mithilfe der @Order-Annotation in der richtigen Reihenfolge ausgeführt.
  • Der Cache neo4JCachedData enthält alle IDs, und ich habe ihre Ausgabe überprüft.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post