I'm not sure how unit test works with CDI, since I started out using Spring and Spring and CDI were not playing well together last time I tried - which admittedly was a long time ago.
For Spring, I could just run a suite using multiple wirings. Spring doesn't depend on a container, however, and as far as I know, CDI does, so that part isn't clear to me.
I should point out that strictly speaking "Unit" tests are not supposed to call other modules anyway. That's an integration test. However,
JUnit works pretty well at the integration test level also.
Also, strictly speaking, if you have plug-replaceable components and the components are all unit-test valid, then a test using one should potentially be a test for all.
I'd also argue that when you are testing anything that needs to call out for services, whether it's mail, web services, or something more exotic, then it's best that you call a mock service and not a live service. Obviously especially for email tests, where you don't want to spam the world, but also generally, since you're less likely to receive unexpected responses from a standard mock than a live component.
Some people, when well-known sources tell them that fire will burn them, don't put their hands in the fire.
Some people, being skeptical, will put their hands in the fire, get burned, and learn not to put their hands in the fire.
And some people, believing that they know better than well-known sources, will claim it's a lie, put their hands in the fire, and continue to scream it's a lie even as their hands burn down to charred stumps.