I do find that the async testing procedure in Vert.x to be VERY error prone and not Kotlinic (idiomatic Kotlin). For instance the test context ends up being created implicitly and the Async object has to be closed manually (can't use Kotlin's use block trick). Also one ends up having to be very careful when to create the Async object and when to complete/finish it. Often if any errors are shown when doing async testing they will be obscure, which isn't helpful when trying to find out why the errors occurred (end up going around in circles).