Mit Android Studio, beim Testen eines Stück Code, der Threads verwendet, fand ich eine gute Lösung, um zu überprüfen, eine Ausnahme ausgelöst wird. Mit UncaughtExceptionHandler
auf den Thread im Test und join()
warten, bis dieser Thread beendet ist.Junit Ausnahmen in separaten Thread mit Coverage
Alles funktioniert perfekt auf einen normalen Testlauf und sogar auf Debug. Das Problem tritt auf, wenn es mit Coverage ausgeführt wird. UncaughtExceptionHandler
wird nie mit der ausgelösten Ausnahme aufgerufen, und daher schlägt der Test fehl, da eine Ausnahme erwartet wird.
Eine der Hypothesen, die ich habe, ist, dass der Thread so läuft, dass er keine ungeprüften Ausnahmen (dh mit einem Haken woanders) auslöst. Aber ich weiß nicht, wie ich dies validieren oder lösen kann Ich kann nicht gleichzeitig debuggen und mit Coverage laufen.