2016-06-16 13 views
1

Ich versuche Einheit (Integration) Test eine Methode kommentiert mit Spring @ Async. Der Test erstellt einige Daten in der Arbeitsspeicher-h2-Datenbank und führt dann die asynchrone Methode aus. Asynchroner Code sieht keine Testdaten: O Das Entfernen von @Async behebt das Problem.Spring @ Async - keine Daten im Integrationstest gefunden

Irgendwelche Hilfe? :)

Antwort

0

Die Transaktion wird nicht wie vor Ihrer @ Async propagiert.

@Async and @Transactional: not working

Ihr Test könnte die Daten verpflichten und es auf beiden Seiten des Tests zu löschen, Spring automatisierte Rollback innerhalb Test @Transactionals zu entfernen.

Sie können eine Standardzugriffsmethode erstellen, auf die die Async-Methode aufruft, die Ihr Test auch direkt aufrufen könnte, obwohl Sie das Async-Verhalten nicht mehr testen würden.

Es gibt wahrscheinlich eine schönere Feder-Implementierung, die unterstützt, was Sie brauchen, die Transaktion verfügbar machen, aber ich habe es nicht.

Verwandte Themen