diff --git a/testing-modules/testing/pom.xml b/testing-modules/testing/pom.xml
index c76045380b..91792a4681 100644
--- a/testing-modules/testing/pom.xml
+++ b/testing-modules/testing/pom.xml
@@ -173,7 +173,7 @@
0.7.7.201606060606
21.0
3.1.0
- 3.6.1
+ 3.9.0
2.1.0
0.32
1.1.0
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java
index 0dff8d2964..07a5be1118 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java
+++ b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java
@@ -15,9 +15,10 @@ public class Java7StyleAssertions {
int denominator = 0;
int quotient = numerator / denominator;
fail("ArithmeticException expected because dividing by zero yields an ArithmeticException.");
- failBecauseExceptionWasNotThrown(IndexOutOfBoundsException.class);
- } catch (ArithmeticException e) {
+ failBecauseExceptionWasNotThrown(ArithmeticException.class);
+ } catch (Exception e) {
assertThat(e).hasMessage("/ by zero");
+ assertThat(e).isInstanceOf(ArithmeticException.class);
}
}
}
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java
new file mode 100644
index 0000000000..53f192bb2f
--- /dev/null
+++ b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java
@@ -0,0 +1,42 @@
+package com.baeldung.testing.assertj.exceptions;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.assertj.core.api.Assertions.catchThrowable;
+
+import org.junit.Test;
+
+public class Java8StyleAssertions {
+
+ @Test
+ public void whenDividingByZero_thenArithmeticException() {
+ assertThatThrownBy(() -> {
+ int numerator = 10;
+ int denominator = 0;
+ int quotient = numerator / denominator;
+ }).isInstanceOf(ArithmeticException.class)
+ .hasMessageContaining("/ by zero");
+
+ assertThatExceptionOfType(ArithmeticException.class).isThrownBy(() -> {
+ int numerator = 10;
+ int denominator = 0;
+ int quotient = numerator / denominator;
+ })
+ .withMessageContaining("/ by zero");
+
+ // BDD style:
+
+ // when
+ Throwable thrown = catchThrowable(() -> {
+ int numerator = 10;
+ int denominator = 0;
+ int quotient = numerator / denominator;
+ });
+
+ // then
+ assertThat(thrown).isInstanceOf(ArithmeticException.class)
+ .hasMessageContaining("/ by zero");
+
+ }
+}