
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
56 lines
1.3 KiB
Plaintext
56 lines
1.3 KiB
Plaintext
== Why is this an issue?
|
||
|
||
Assertion methods are throwing a \"``++java.lang.AssertionError++``". If this call is done within the try block of a try-catch cathing a similar error, you should make sure to test some properties of the exception. Otherwise, the assertion will never fail.
|
||
|
||
|
||
=== Noncompliant code example
|
||
|
||
[source,java]
|
||
----
|
||
@Test
|
||
public void should_throw_assertion_error() {
|
||
try {
|
||
throwAssertionError();
|
||
Assert.fail("Expected an AssertionError!"); // Noncompliant, the AssertionError will be caught and the test will never fail.
|
||
} catch (AssertionError e) {}
|
||
}
|
||
|
||
private void throwAssertionError() {
|
||
throw new AssertionError("My assertion error");
|
||
}
|
||
----
|
||
|
||
|
||
=== Compliant solution
|
||
|
||
[source,java]
|
||
----
|
||
assertThrows(AssertionError.class, () -> throwAssertionError());
|
||
----
|
||
|
||
[source,java]
|
||
----
|
||
try {
|
||
throwAssertionError();
|
||
Assert.fail("Expected an AssertionError!"); // Compliant, we made sure to test that the correct error is raised
|
||
} catch (AssertionError e) {
|
||
Assert.assertThat(e.getMessage(), is("My assertion error"));
|
||
}
|
||
----
|
||
|
||
|
||
== Resources
|
||
|
||
* https://github.com/junit-team/junit4/wiki/Exception-testing[JUnit 4 exception testing documentation]
|
||
ifdef::env-github,rspecator-view[]
|
||
|
||
'''
|
||
== Implementation Specification
|
||
(visible only on this page)
|
||
|
||
include::../message.adoc[]
|
||
|
||
include::../highlighting.adoc[]
|
||
|
||
endif::env-github,rspecator-view[]
|