Hi,
recently during CDI TCK arquillian migration (1.1 branch) we had to
replace test harness @ExpectedDeploymentException in tests expecting
deployment failure.
So currently in TCK we use @ShouldThrowException(Exception.class) on
arquillian deployment method. Indeed testing generic Exception is not
the best solution but in fact right now we cannot test exact deployment
causewhile there are no standardized CDI deployment-relatedexceptions
(in CDI 1.1 there will be - see CDI-118 Standardize deployment-related
exception classes). Also note that "Adding this annotation will force
@{@link Deployment} to be testable = false which will force @{@link
RunAsClient}".
The other possibility is to use something like Assert.fail("Deployment
should have failed...") or assert false in test method. Seam
Compatibility and Weld use this approach.
The question is whether to standardize this among all cdi/weld/seam
tests. I think we should use the arquillian way (@ShouldThrowException)
while its more obvious that we expect deployment failure and use
relevant expected exceptions as soon as CDI 1.1 arrives.
WDYT?
M
--
Martin Kouba
JBoss Quality Assurance Engineer
E-mail: mkouba(a)redhat.com
Web:
www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic