You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Florian Motteau <fl...@motteau-martins.net.INVALID> on 2025/09/11 06:32:40 UTC
Asynchronous service calls in groovy tests
Hi all,
I'm writing service tests, in the same way as what's done in
ProductPromoCondTests.groovy. I load same data, then start a service
using dispatcher.runSync, and finally, check my database state.
I would like to be able to test services that are launched with runAsync
in my codebase. For now I can only check that the service is scheduled
(checking JobSandbox), but I guess that my test ends before the async
service is started (and I'm not even sure how to wait for a spawn thread
in my test).
I tried to replace "runAsync" calls by "runSync" using Mockito's spy()
and doAnswer, but I could not achieve what I need (I'm certainly missing
something here).
Has anyone ever encountered this need and could share a solution ?
Beside this, I would like to be able to run on specific test with CLI.
For now I launch
./gradlew 'ofbiz -t component=stock -t suitename=stockTests -t
case=stockTests'
...which runs all the tests in StockTests.groovy class. Is it possible
to update this command to run only one test in this class ?
Thank you
Re: Asynchronous service calls in groovy tests
Posted by Florian Motteau <fl...@nereide.fr>.
I forgot to mention that the async service I want to test is launched
with a EECA, upon an entity creation, with mode="async".
Le 11/09/2025 à 08:32, Florian Motteau a écrit :
> Hi all,
>
> I'm writing service tests, in the same way as what's done in
> ProductPromoCondTests.groovy. I load same data, then start a service
> using dispatcher.runSync, and finally, check my database state.
>
> I would like to be able to test services that are launched with
> runAsync in my codebase. For now I can only check that the service is
> scheduled (checking JobSandbox), but I guess that my test ends before
> the async service is started (and I'm not even sure how to wait for a
> spawn thread in my test).
>
> I tried to replace "runAsync" calls by "runSync" using Mockito's spy()
> and doAnswer, but I could not achieve what I need (I'm certainly
> missing something here).
>
> Has anyone ever encountered this need and could share a solution ?
>
> Beside this, I would like to be able to run on specific test with CLI.
> For now I launch
>
> ./gradlew 'ofbiz -t component=stock -t suitename=stockTests -t
> case=stockTests'
>
> ...which runs all the tests in StockTests.groovy class. Is it possible
> to update this command to run only one test in this class ?
>
> Thank you
>
--
Néréide <http://nereide.fr/>
Florian Motteau
Co-entrepreneur Néréide
information@nereide.fr
8 rue des Déportés 37000 TOURS
Std: 02 47 50 30 54
www.nereide.fr <https://nereide.fr/>
Réseau Libre-Entreprise <https://www.libre-entreprise.org/>