[
https://issues.jboss.org/browse/ARQ-1038?page=com.atlassian.jira.plugin.s...
]
Craig Ringer updated ARQ-1038:
------------------------------
Summary: Unwrap EJBException, expect nested exceptions (was: Unwrap
EJBException)
Description:
I'm often testing EJBs and am finding that the automatic wrapping of unchecked
exceptions makes for rather verbose and noisy tests.
I'd like to write:
{code}
@Test(expected=IllegalArgumentException.class)
public void cannotGetNullId() {
someEJB.getById(null);
}
{code}
but it will fail because IllegalArgumentException is an unchecked exception so it'll
get wrapped in an EJBException. That's OK if I don't mind accepting *all*
EJBExceptions, but I'd usually prefer to be more specific.
I frequently find myself writing verbose code to unwrap a thrown exception and test it
manually:
{code}
public void cannotGetNullId() {
try {
someEJB.getById(null);
} catch (EJBException ex) {
if (ex.getCause() instanceof IllegalArgumentException) {
return;
}
ex.printStackTrace();
Assert.fail("Unexpected exception: " +ex);
}
Assert.fail("Expected IllegalArgumentException");
}
{code}
It'd be wonderful if Arquillian were able to provide EJBException unwrapping to make
this testing process less ... icky.
The usual approach to solving this problem involves extending JUnit's TestRunner,
which doesn't fit well when Arquillian takes over this role.
It looks like it's possible using rules and matchers, as per:
http://stackoverflow.com/questions/871216/junit-possible-to-expect-a-wrap...
... but with exception wrapping so universal in the Java EE space, being able to
"expect" a *nested* exception would be a big plus.
was:
I'm often testing EJBs and am finding that the automatic wrapping of unchecked
exceptions makes for rather verbose and noisy tests.
I'd like to write:
{code}
@Test(expected=IllegalArgumentException.class)
public void cannotGetNullId() {
someEJB.getById(null);
}
{code}
but it will fail because IllegalArgumentException is an unchecked exception so it'll
get wrapped in an EJBException. That's OK if I don't mind accepting *all*
EJBExceptions, but I'd usually prefer to be more specific.
I frequently find myself writing verbose code to unwrap a thrown exception and test it
manually:
{code}
public void cannotGetNullId() {
try {
someEJB.getById(null);
} catch (EJBException ex) {
if (ex.getCause() instanceof IllegalArgumentException) {
return;
}
ex.printStackTrace();
Assert.fail("Unexpected exception: " +ex);
}
Assert.fail("Expected IllegalArgumentException");
}
{code}
It'd be wonderful if Arquillian were able to provide EJBException unwrapping to make
this testing process less ... icky.
Unwrap EJBException, expect nested exceptions
---------------------------------------------
Key: ARQ-1038
URL:
https://issues.jboss.org/browse/ARQ-1038
Project: Arquillian
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: Base Implementation
Affects Versions: 1.0.1.Final
Environment: n/a
Reporter: Craig Ringer
Priority: Minor
I'm often testing EJBs and am finding that the automatic wrapping of unchecked
exceptions makes for rather verbose and noisy tests.
I'd like to write:
{code}
@Test(expected=IllegalArgumentException.class)
public void cannotGetNullId() {
someEJB.getById(null);
}
{code}
but it will fail because IllegalArgumentException is an unchecked exception so it'll
get wrapped in an EJBException. That's OK if I don't mind accepting *all*
EJBExceptions, but I'd usually prefer to be more specific.
I frequently find myself writing verbose code to unwrap a thrown exception and test it
manually:
{code}
public void cannotGetNullId() {
try {
someEJB.getById(null);
} catch (EJBException ex) {
if (ex.getCause() instanceof IllegalArgumentException) {
return;
}
ex.printStackTrace();
Assert.fail("Unexpected exception: " +ex);
}
Assert.fail("Expected IllegalArgumentException");
}
{code}
It'd be wonderful if Arquillian were able to provide EJBException unwrapping to make
this testing process less ... icky.
The usual approach to solving this problem involves extending JUnit's TestRunner,
which doesn't fit well when Arquillian takes over this role.
It looks like it's possible using rules and matchers, as per:
http://stackoverflow.com/questions/871216/junit-possible-to-expect-a-wrap...
... but with exception wrapping so universal in the Java EE space, being able to
"expect" a *nested* exception would be a big plus.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira