Ich habe eine einfache API geladen Daten aus einer PostgreSQL
Datenbank und einem einfachen CRUD-Service/Repository (alle Spring-Boot-basierte). Ich habe meine markiert erstellen/aktualisieren Methoden in der Dienstschicht als:So testen Sie Spring @Transactional timeout ordnungsgemäß
@Transactional(timeout=5)
public void create(Entity x){
...
repository.save(x)
}
Wie kann ich testen (Integrationstests, übrigens) die Bedingung, unter der Timeout-Ausnahme wäre geworfen werden? Mein Repository ist eine Erweiterung von CrudRepository
.
So etwas wie doTimeout(6000).when(repository).save(...)
Sie müssen das Transaktionszeitlimit nicht testen. Es ist Teil des Spring-Systems, nicht Ihres Systems. – DwB
@DwB Ich bin irgendwie Ihrer Meinung, aber OTOH Ich stimme allen in diesem Beitrag beschriebenen Aspekten zu: http://the-music-of-time.blogspot.com.br/2012/10/writing-unit-tests- zu-sicherstellen-your.html. Ich denke gerne über die Verträge nach, die ich in meinen Methoden beschreibe, und das Entfernen würde das sehr verändern. – resilva87