From e8b2ea9a92fb8fa25611daa3333e86ea54a364d5 Mon Sep 17 00:00:00 2001 From: michaelin007 Date: Thu, 21 Dec 2023 09:26:29 +0000 Subject: [PATCH 1/4] https://jira.baeldung.com/browse/BAEL-7376 --- .../springjunitconfiguration/Person.java | 11 ++++++ .../SpringJUnitConfigIntegrationTest.java | 33 ++++++++++++++++++ ...ngJUnitConfigurationParameterizedTest.java | 22 ++++++++++++ .../SpringJUnitWebConfigIntegrationTest.java | 34 +++++++++++++++++++ .../springjunitconfiguration/TestConfig.java | 19 +++++++++++ 5 files changed, 119 insertions(+) create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java new file mode 100644 index 0000000000..f0fd0e955e --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java @@ -0,0 +1,11 @@ +package com.baeldung.springjunitconfiguration; + +public class Person { + + String name; + + public Person(String name) { + this.name = name; + } + +} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java new file mode 100644 index 0000000000..864eba97cc --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java @@ -0,0 +1,33 @@ +package com.baeldung.springjunitconfiguration; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; + +import static org.junit.Assert.assertNotNull; + +/** + * @SpringJUnitConfig(SpringJUnitConfigTest.Config.class) is equivalent to: + * + * @ExtendWith(SpringExtension.class) + * @ContextConfiguration(classes = SpringJUnitConfigTest.Config.class ) + * + */ +@SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class) +public class SpringJUnitConfigIntegrationTest { + + @Configuration + static class Config { + } + + @Autowired + private ApplicationContext applicationContext; + + @Test + void givenAppContext_WhenInjected_ThenItShouldNotBeNull() { + assertNotNull(applicationContext); + } + +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java new file mode 100644 index 0000000000..92874e2d59 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java @@ -0,0 +1,22 @@ +package com.baeldung.springjunitconfiguration; + +import java.util.List; +import org.junit.jupiter.params.ParameterizedTest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContext; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + + +@SpringJUnitConfig(classes = TestConfig.class , loader = AnnotationConfigContextLoader.class) +public class SpringJUnitConfigurationParameterizedTest { + + @ParameterizedTest + @ValueSource(strings = { "Dilbert", "Wally" }) + void people(String name, @Autowired List people) { + assertThat(people.stream() + .map(Person::getName) + .filter(name::equals)).hasSize(1); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java new file mode 100644 index 0000000000..42422f4537 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java @@ -0,0 +1,34 @@ +package com.baeldung.springjunitconfiguration; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; +import org.springframework.web.context.WebApplicationContext; + +import static org.junit.Assert.assertNotNull; + +/** + * @SpringJUnitWebConfig(SpringJUnitWebConfigTest.Config.class) is equivalent to: + * + * @ExtendWith(SpringExtension.class) + * @WebAppConfiguration + * @ContextConfiguration(classes = SpringJUnitWebConfigTest.Config.class ) + * + */ +@SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class) +public class SpringJUnitWebConfigIntegrationTest { + + @Configuration + static class Config { + } + + @Autowired + private WebApplicationContext webAppContext; + + @Test + void givenWebAppContext_WhenInjected_ThenItShouldNotBeNull() { + assertNotNull(webAppContext); + } + +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java new file mode 100644 index 0000000000..a02c542e8d --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java @@ -0,0 +1,19 @@ +package com.baeldung.springjunitconfiguration; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +@Configuration +public class TestConfig { + + @Bean + Person dilbert() { + return new Person("Dilbert"); + } + + @Bean + Person wally() { + return new Person("Wally"); + } + +} \ No newline at end of file From b689e22bcf2f6d91764b0fa176bcbaa707c38a22 Mon Sep 17 00:00:00 2001 From: michaelin007 Date: Thu, 21 Dec 2023 09:48:02 +0000 Subject: [PATCH 2/4] https://jira.baeldung.com/browse/BAEL-7376 --- .../SpringJUnitConfigIntegrationTest.java | 10 +++++----- .../SpringJUnitConfigurationParameterizedTest.java | 6 ++---- .../SpringJUnitWebConfigIntegrationTest.java | 10 +++++----- .../baeldung/springjunitconfiguration/TestConfig.java | 2 +- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java index 864eba97cc..a163ef893c 100644 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigIntegrationTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertNotNull; /** * @SpringJUnitConfig(SpringJUnitConfigTest.Config.class) is equivalent to: - * + * * @ExtendWith(SpringExtension.class) * @ContextConfiguration(classes = SpringJUnitConfigTest.Config.class ) * @@ -18,10 +18,6 @@ import static org.junit.Assert.assertNotNull; @SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class) public class SpringJUnitConfigIntegrationTest { - @Configuration - static class Config { - } - @Autowired private ApplicationContext applicationContext; @@ -30,4 +26,8 @@ public class SpringJUnitConfigIntegrationTest { assertNotNull(applicationContext); } + @Configuration + static class Config { + } + } diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java index 92874e2d59..642a9c9f64 100644 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java @@ -1,15 +1,13 @@ package com.baeldung.springjunitconfiguration; -import java.util.List; import org.junit.jupiter.params.ParameterizedTest; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.ApplicationContext; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import org.springframework.test.context.support.AnnotationConfigContextLoader; +import java.util.List; -@SpringJUnitConfig(classes = TestConfig.class , loader = AnnotationConfigContextLoader.class) +@SpringJUnitConfig(classes = TestConfig.class, loader = AnnotationConfigContextLoader.class) public class SpringJUnitConfigurationParameterizedTest { @ParameterizedTest diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java index 42422f4537..0ccb988e0a 100644 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitWebConfigIntegrationTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertNotNull; /** * @SpringJUnitWebConfig(SpringJUnitWebConfigTest.Config.class) is equivalent to: - * + * * @ExtendWith(SpringExtension.class) * @WebAppConfiguration * @ContextConfiguration(classes = SpringJUnitWebConfigTest.Config.class ) @@ -19,10 +19,6 @@ import static org.junit.Assert.assertNotNull; @SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class) public class SpringJUnitWebConfigIntegrationTest { - @Configuration - static class Config { - } - @Autowired private WebApplicationContext webAppContext; @@ -31,4 +27,8 @@ public class SpringJUnitWebConfigIntegrationTest { assertNotNull(webAppContext); } + @Configuration + static class Config { + } + } diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java index a02c542e8d..859aff9d9b 100644 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/TestConfig.java @@ -2,7 +2,7 @@ package com.baeldung.springjunitconfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; + @Configuration public class TestConfig { From f36e38d1f175e59950ff293977c7cc949b5adb02 Mon Sep 17 00:00:00 2001 From: michaelin007 Date: Thu, 21 Dec 2023 13:37:06 +0000 Subject: [PATCH 3/4] The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring --- .../java/com/baeldung/springjunitconfiguration/Person.java | 4 ++++ ...izedTest.java => SpringJUnitConfigurationUnitTest.java} | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) rename spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/{SpringJUnitConfigurationParameterizedTest.java => SpringJUnitConfigurationUnitTest.java} (69%) diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java index f0fd0e955e..097af2ad1c 100644 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java @@ -8,4 +8,8 @@ public class Person { this.name = name; } + public String getName() { + return this.name; + } + } \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationUnitTest.java similarity index 69% rename from spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java rename to spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationUnitTest.java index 642a9c9f64..79486e6b3e 100644 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationParameterizedTest.java +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/SpringJUnitConfigurationUnitTest.java @@ -1,18 +1,21 @@ package com.baeldung.springjunitconfiguration; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import org.springframework.test.context.support.AnnotationConfigContextLoader; import java.util.List; +import static org.assertj.core.api.Assertions.assertThat; + @SpringJUnitConfig(classes = TestConfig.class, loader = AnnotationConfigContextLoader.class) -public class SpringJUnitConfigurationParameterizedTest { +public class SpringJUnitConfigurationUnitTest { @ParameterizedTest @ValueSource(strings = { "Dilbert", "Wally" }) - void people(String name, @Autowired List people) { + void givenPeopleList_whenSetPeopleWithName_thenListContainsOnePerson(String name, @Autowired List people) { assertThat(people.stream() .map(Person::getName) .filter(name::equals)).hasSize(1); From 922b77106ced3fd6aa69ba85f3d2208af2a547ce Mon Sep 17 00:00:00 2001 From: michaelin007 Date: Tue, 26 Dec 2023 15:17:28 +0000 Subject: [PATCH 4/4] The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring --- .../SpringJUnitConfigIntegrationTest.java | 33 ------------------ .../SpringJUnitWebConfigIntegrationTest.java | 34 ------------------- .../springjunitconfiguration/Person.java | 0 3 files changed, 67 deletions(-) delete mode 100644 spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitConfigIntegrationTest.java delete mode 100644 spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitWebConfigIntegrationTest.java rename spring-boot-modules/spring-boot-3/src/{test => main}/java/com/baeldung/springjunitconfiguration/Person.java (100%) diff --git a/spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitConfigIntegrationTest.java b/spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitConfigIntegrationTest.java deleted file mode 100644 index 5f81c94aa0..0000000000 --- a/spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitConfigIntegrationTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.baeldung.jupiter; - -import static org.junit.Assert.assertNotNull; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Configuration; -import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; - -/** - * @SpringJUnitConfig(SpringJUnitConfigTest.Config.class) is equivalent to: - * - * @ExtendWith(SpringExtension.class) - * @ContextConfiguration(classes = SpringJUnitConfigTest.Config.class ) - * - */ -@SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class) -public class SpringJUnitConfigIntegrationTest { - - @Configuration - static class Config { - } - - @Autowired - private ApplicationContext applicationContext; - - @Test - void givenAppContext_WhenInjected_ThenItShouldNotBeNull() { - assertNotNull(applicationContext); - } - -} diff --git a/spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitWebConfigIntegrationTest.java b/spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitWebConfigIntegrationTest.java deleted file mode 100644 index 4c3ffda203..0000000000 --- a/spring-5/src/test/java/com/baeldung/jupiter/SpringJUnitWebConfigIntegrationTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.baeldung.jupiter; - -import static org.junit.Assert.assertNotNull; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; -import org.springframework.web.context.WebApplicationContext; - -/** - * @SpringJUnitWebConfig(SpringJUnitWebConfigTest.Config.class) is equivalent to: - * - * @ExtendWith(SpringExtension.class) - * @WebAppConfiguration - * @ContextConfiguration(classes = SpringJUnitWebConfigTest.Config.class ) - * - */ -@SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class) -public class SpringJUnitWebConfigIntegrationTest { - - @Configuration - static class Config { - } - - @Autowired - private WebApplicationContext webAppContext; - - @Test - void givenWebAppContext_WhenInjected_ThenItShouldNotBeNull() { - assertNotNull(webAppContext); - } - -} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/springjunitconfiguration/Person.java similarity index 100% rename from spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/springjunitconfiguration/Person.java rename to spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/springjunitconfiguration/Person.java