From 7d343f7674b2ed6ebc435ab533b0dddc8990a36d Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Thu, 21 Apr 2022 11:05:26 +0300 Subject: [PATCH 1/7] assertThat(T, Matcher) Deprecated. Use org.hamcrest.MatcherAssert.assertThat() --- .../junit5vsjunit4assertions/Junit4AssertionsUnitTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit4AssertionsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit4AssertionsUnitTest.java index 7e74c2dace..236a43036b 100644 --- a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit4AssertionsUnitTest.java +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit4AssertionsUnitTest.java @@ -1,5 +1,6 @@ package com.baeldung.junit5vsjunit4assertions; +import org.hamcrest.MatcherAssert; import org.junit.Test; import java.util.Arrays; @@ -30,7 +31,7 @@ public class Junit4AssertionsUnitTest { @Test public void whenAssertingArraysEquality_thenEqual() { - char[] expected = { 'J', 'u', 'n', 'i', 't' }; + char[] expected = {'J', 'u', 'n', 'i', 't'}; char[] actual = "Junit".toCharArray(); assertArrayEquals(expected, actual); @@ -95,7 +96,7 @@ public class Junit4AssertionsUnitTest { @Test public void testAssertThatHasItems() { - assertThat(Arrays.asList("Java", "Kotlin", "Scala"), hasItems("Java", "Kotlin")); + MatcherAssert.assertThat(Arrays.asList("Java", "Kotlin", "Scala"), hasItems("Java", "Kotlin")); } } From 06c16d1eb0cd257b9922b6cc45f1cc22272ccbe5 Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Thu, 21 Apr 2022 11:06:23 +0300 Subject: [PATCH 2/7] JUnit5 test classes and methods should have default package visibility --- .../Junit5AssertionsUnitTest.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java index 40b9143a71..ced87dea8d 100644 --- a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java @@ -32,11 +32,11 @@ import org.junit.jupiter.api.Test; * Unit test that demonstrate the different assertions available within JUnit 4 */ @DisplayName("Test case for assertions") -public class Junit5AssertionsUnitTest { +class Junit5AssertionsUnitTest { @Test @DisplayName("Arrays should be equals") - public void whenAssertingArraysEquality_thenEqual() { + void whenAssertingArraysEquality_thenEqual() { char[] expected = {'J', 'u', 'p', 'i', 't', 'e', 'r'}; char[] actual = "Jupiter".toCharArray(); @@ -45,7 +45,7 @@ public class Junit5AssertionsUnitTest { @Test @DisplayName("The area of two polygons should be equal") - public void whenAssertingEquality_thenEqual() { + void whenAssertingEquality_thenEqual() { float square = 2 * 2; float rectangle = 2 * 2; @@ -53,7 +53,7 @@ public class Junit5AssertionsUnitTest { } @Test - public void whenAssertingEqualityWithDelta_thenEqual() { + void whenAssertingEqualityWithDelta_thenEqual() { float square = 2 * 2; float rectangle = 3 * 2; float delta = 2; @@ -62,27 +62,27 @@ public class Junit5AssertionsUnitTest { } @Test - public void whenAssertingConditions_thenVerified() { + void whenAssertingConditions_thenVerified() { assertTrue(5 > 4, "5 is greater the 4"); assertTrue(null == null, "null is equal to null"); } @Test - public void whenAssertingNull_thenTrue() { + void whenAssertingNull_thenTrue() { Object cat = null; assertNull(cat, () -> "The cat should be null"); } @Test - public void whenAssertingNotNull_thenTrue() { + void whenAssertingNotNull_thenTrue() { Object dog = new Object(); assertNotNull(dog, () -> "The dog should not be null"); } @Test - public void whenAssertingSameObject_thenSuccessfull() { + void whenAssertingSameObject_thenSuccessfull() { String language = "Java"; Optional optional = Optional.of(language); @@ -90,7 +90,7 @@ public class Junit5AssertionsUnitTest { } @Test - public void givenBooleanSupplier_whenAssertingCondition_thenVerified() { + void givenBooleanSupplier_whenAssertingCondition_thenVerified() { BooleanSupplier condition = () -> 5 > 6; assertFalse(condition, "5 is not greater then 6"); @@ -98,13 +98,13 @@ public class Junit5AssertionsUnitTest { @Test @Disabled - public void whenFailingATest_thenFailed() { + void whenFailingATest_thenFailed() { // Test not completed fail("FAIL - test not completed"); } @Test - public void givenMultipleAssertion_whenAssertingAll_thenOK() { + void givenMultipleAssertion_whenAssertingAll_thenOK() { Object obj = null; assertAll( "heading", @@ -115,7 +115,7 @@ public class Junit5AssertionsUnitTest { } @Test - public void givenTwoLists_whenAssertingIterables_thenEquals() { + void givenTwoLists_whenAssertingIterables_thenEquals() { Iterable al = new ArrayList<>(asList("Java", "Junit", "Test")); Iterable ll = new LinkedList<>(asList("Java", "Junit", "Test")); @@ -123,7 +123,7 @@ public class Junit5AssertionsUnitTest { } @Test - public void whenAssertingTimeout_thenNotExceeded() { + void whenAssertingTimeout_thenNotExceeded() { assertTimeout( ofSeconds(2), () -> { @@ -134,7 +134,7 @@ public class Junit5AssertionsUnitTest { } @Test - public void whenAssertingTimeoutPreemptively_thenNotExceeded() { + void whenAssertingTimeoutPreemptively_thenNotExceeded() { assertTimeoutPreemptively( ofSeconds(2), () -> { @@ -145,14 +145,14 @@ public class Junit5AssertionsUnitTest { } @Test - public void whenAssertingEquality_thenNotEqual() { + void whenAssertingEquality_thenNotEqual() { Integer value = 5; // result of an algorithm assertNotEquals(0, value, "The result cannot be 0"); } @Test - public void whenAssertingEqualityListOfStrings_thenEqual() { + void whenAssertingEqualityListOfStrings_thenEqual() { List expected = asList("Java", "\\d+", "JUnit"); List actual = asList("Java", "11", "JUnit"); @@ -171,7 +171,7 @@ public class Junit5AssertionsUnitTest { } @Test - public void testConvertToDoubleThrowException() { + void testConvertToDoubleThrowException() { String age = "eighteen"; assertThrows(NumberFormatException.class, () -> { convertToInt(age); From 618c69690d454dc945f0d01055d958f08d7b5db4 Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Thu, 21 Apr 2022 11:07:21 +0300 Subject: [PATCH 3/7] Code reformat --- .../Junit5AssertionsUnitTest.java | 62 +++++++------------ 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java index ced87dea8d..fec24ac6d3 100644 --- a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java @@ -1,22 +1,8 @@ package com.baeldung.junit5vsjunit4assertions; -import static java.time.Duration.ofSeconds; -import static java.util.Arrays.asList; -import static org.junit.jupiter.api.Assertions.assertAll; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertIterableEquals; -import static org.junit.jupiter.api.Assertions.assertLinesMatch; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertSame; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTimeout; -import static org.junit.jupiter.api.Assertions.assertTimeoutPreemptively; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.fail; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.LinkedList; @@ -24,9 +10,9 @@ import java.util.List; import java.util.Optional; import java.util.function.BooleanSupplier; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; +import static java.time.Duration.ofSeconds; +import static java.util.Arrays.asList; +import static org.junit.jupiter.api.Assertions.*; /** * Unit test that demonstrate the different assertions available within JUnit 4 @@ -107,10 +93,10 @@ class Junit5AssertionsUnitTest { void givenMultipleAssertion_whenAssertingAll_thenOK() { Object obj = null; assertAll( - "heading", - () -> assertEquals(4, 2 * 2, "4 is 2 times 2"), - () -> assertEquals("java", "JAVA".toLowerCase()), - () -> assertEquals(obj, null, "null is equal to null") + "heading", + () -> assertEquals(4, 2 * 2, "4 is 2 times 2"), + () -> assertEquals("java", "JAVA".toLowerCase()), + () -> assertEquals(obj, null, "null is equal to null") ); } @@ -125,22 +111,22 @@ class Junit5AssertionsUnitTest { @Test void whenAssertingTimeout_thenNotExceeded() { assertTimeout( - ofSeconds(2), - () -> { - // code that requires less then 2 minutes to execute - Thread.sleep(1000); - } + ofSeconds(2), + () -> { + // code that requires less then 2 minutes to execute + Thread.sleep(1000); + } ); } @Test void whenAssertingTimeoutPreemptively_thenNotExceeded() { assertTimeoutPreemptively( - ofSeconds(2), - () -> { - // code that requires less then 2 minutes to execute - Thread.sleep(1000); - } + ofSeconds(2), + () -> { + // code that requires less then 2 minutes to execute + Thread.sleep(1000); + } ); } @@ -162,10 +148,10 @@ class Junit5AssertionsUnitTest { @Test void whenAssertingException_thenThrown() { Throwable exception = assertThrows( - IllegalArgumentException.class, - () -> { - throw new IllegalArgumentException("Exception message"); - } + IllegalArgumentException.class, + () -> { + throw new IllegalArgumentException("Exception message"); + } ); assertEquals("Exception message", exception.getMessage()); } From 4a30842e106a7f9d052cef6215e06b5200e06587 Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Thu, 21 Apr 2022 11:26:51 +0300 Subject: [PATCH 4/7] Explicitly create Supplier to demonstrate use of assertNull(Object, Supplier) method --- .../junit5vsjunit4assertions/Junit5AssertionsUnitTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java index fec24ac6d3..27ed1b69a5 100644 --- a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Optional; import java.util.function.BooleanSupplier; +import java.util.function.Supplier; import static java.time.Duration.ofSeconds; import static java.util.Arrays.asList; @@ -57,7 +58,8 @@ class Junit5AssertionsUnitTest { void whenAssertingNull_thenTrue() { Object cat = null; - assertNull(cat, () -> "The cat should be null"); + Supplier messageSupplier = () -> "The cat should be null"; + assertNull(cat, messageSupplier); } @Test From 9df069c8628d9c8050fda2f7dd0aba4031fbca70 Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Thu, 21 Apr 2022 11:27:51 +0300 Subject: [PATCH 5/7] Typos --- .../junit5vsjunit4assertions/Junit5AssertionsUnitTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java index 27ed1b69a5..1b1b6510fb 100644 --- a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java @@ -70,7 +70,7 @@ class Junit5AssertionsUnitTest { } @Test - void whenAssertingSameObject_thenSuccessfull() { + void whenAssertingSameObject_thenSuccessful() { String language = "Java"; Optional optional = Optional.of(language); @@ -115,7 +115,7 @@ class Junit5AssertionsUnitTest { assertTimeout( ofSeconds(2), () -> { - // code that requires less then 2 minutes to execute + // code that requires less than 2 minutes to execute Thread.sleep(1000); } ); @@ -126,7 +126,7 @@ class Junit5AssertionsUnitTest { assertTimeoutPreemptively( ofSeconds(2), () -> { - // code that requires less then 2 minutes to execute + // code that requires less than 2 minutes to execute Thread.sleep(1000); } ); From f56a57f901eae599abada8e53f0998a921963570 Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Thu, 21 Apr 2022 11:33:22 +0300 Subject: [PATCH 6/7] Add an explanation about why this test is skipped as value of @Disabled --- .../junit5vsjunit4assertions/Junit5AssertionsUnitTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java index 1b1b6510fb..bd64504b65 100644 --- a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java @@ -85,9 +85,8 @@ class Junit5AssertionsUnitTest { } @Test - @Disabled + @Disabled("Test not completed") void whenFailingATest_thenFailed() { - // Test not completed fail("FAIL - test not completed"); } From 0e399659c13c211239ace8f1378c44f98f8f094e Mon Sep 17 00:00:00 2001 From: Alex Golub Date: Thu, 21 Apr 2022 11:34:47 +0300 Subject: [PATCH 7/7] Simplify to assertNull(Object, String) --- .../junit5vsjunit4assertions/Junit5AssertionsUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java index bd64504b65..1ba0b7ba8a 100644 --- a/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java +++ b/testing-modules/junit5-migration/src/test/java/com/baeldung/junit5vsjunit4assertions/Junit5AssertionsUnitTest.java @@ -97,7 +97,7 @@ class Junit5AssertionsUnitTest { "heading", () -> assertEquals(4, 2 * 2, "4 is 2 times 2"), () -> assertEquals("java", "JAVA".toLowerCase()), - () -> assertEquals(obj, null, "null is equal to null") + () -> assertNull(obj, "obj is null") ); }