From a11251c68885a644b78b851f78327f1ce8ee6d6f Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Sun, 15 Sep 2024 15:54:45 +0900 Subject: [PATCH 1/9] =?UTF-8?q?test:=20MemberServiceTest=20=EB=B3=B4?= =?UTF-8?q?=EC=B6=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/service/MemberServiceTest.java | 125 +++++++++++++++--- 1 file changed, 107 insertions(+), 18 deletions(-) diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index e0e5a08b6..55deb4b33 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -3,34 +3,56 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertAll; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.boot.test.web.server.LocalServerPort; +import codezap.category.domain.Category; import codezap.category.repository.CategoryRepository; -import codezap.category.repository.FakeCategoryRepository; +import codezap.fixture.CategoryFixture; +import codezap.fixture.TemplateFixture; +import codezap.global.DatabaseIsolation; import codezap.global.exception.CodeZapException; import codezap.member.domain.Member; import codezap.member.dto.MemberDto; import codezap.member.dto.request.SignupRequest; import codezap.member.dto.response.FindMemberResponse; import codezap.member.fixture.MemberFixture; -import codezap.member.repository.FakeMemberRepository; import codezap.member.repository.MemberRepository; -import codezap.auth.encryption.PasswordEncryptor; -import codezap.auth.encryption.RandomSaltGenerator; -import codezap.auth.encryption.SHA2PasswordEncryptor; -import codezap.auth.encryption.SaltGenerator; +import codezap.template.domain.Template; +import codezap.template.repository.TemplateRepository; +import io.restassured.RestAssured; -public class MemberServiceTest { +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) +@DatabaseIsolation +class MemberServiceTest { - private final MemberRepository memberRepository = new FakeMemberRepository(); - private final CategoryRepository categoryRepository = new FakeCategoryRepository(); - private final SaltGenerator saltGenerator = new RandomSaltGenerator(); - private final PasswordEncryptor passwordEncryptor = new SHA2PasswordEncryptor(); - private final MemberService memberService = new MemberService(memberRepository, categoryRepository, saltGenerator, passwordEncryptor); + @Autowired + private MemberRepository memberRepository; + + @Autowired + private CategoryRepository categoryRepository; + + @Autowired + private TemplateRepository templateRepository; + + @Autowired + private MemberService memberService; + + @LocalServerPort + int port; + + @BeforeEach + void setUp() { + RestAssured.port = port; + } @Nested @DisplayName("회원가입 테스트") @@ -42,7 +64,10 @@ void signup() { Member member = MemberFixture.memberFixture(); SignupRequest signupRequest = new SignupRequest(member.getName(), member.getPassword()); - assertEquals(memberService.signup(signupRequest), 1L); + assertAll( + () -> assertThat(memberService.signup(signupRequest)).isEqualTo(member.getId()), + () -> assertThat(categoryRepository.existsByNameAndMember("카테고리 없음", member)).isTrue() + ); } @Test @@ -74,8 +99,9 @@ void assertUniquename() { @DisplayName("아이디 중복 검사 실패: 중복된 아이디") void assertUniquename_fail_duplicate() { Member member = memberRepository.save(MemberFixture.memberFixture()); + String memberName = member.getName(); - assertThatThrownBy(() -> memberService.assertUniqueName(member.getName())) + assertThatThrownBy(() -> memberService.assertUniqueName(memberName)) .isInstanceOf(CodeZapException.class) .hasMessage("아이디가 이미 존재합니다."); } @@ -90,18 +116,81 @@ class findMember { void findMember() { Member member = memberRepository.save(MemberFixture.memberFixture()); - assertThat(memberService.findMember(MemberDto.from(member), member.getId())) - .isEqualTo(FindMemberResponse.from(member)); + FindMemberResponse actual = memberService.findMember(MemberDto.from(member), member.getId()); + + assertThat(actual).isEqualTo(FindMemberResponse.from(member)); } @Test @DisplayName("회원 정보 조회 실패: 본인 정보가 아닌 경우") void findMember_Throw() { Member member = memberRepository.save(MemberFixture.memberFixture()); + MemberDto memberDto = MemberDto.from(member); + Long otherId = member.getId() + 1; - assertThatThrownBy(() -> memberService.findMember(MemberDto.from(member), member.getId() + 1)) + assertThatThrownBy(() -> memberService.findMember(memberDto, otherId)) .isInstanceOf(CodeZapException.class) .hasMessage("본인의 정보만 조회할 수 있습니다."); } + + @Test + @DisplayName("회원 정보 조회 실패: DB에 없는 멤버인 경우") + void findMember_Throw_Not_Exists() { + Member member = MemberFixture.memberFixture(); + MemberDto memberDto = MemberDto.from(member); + Long memberId = member.getId(); + + assertThatThrownBy(() -> memberService.findMember(memberDto, memberId)) + .isInstanceOf(CodeZapException.class) + .hasMessage("식별자 " + memberId + "에 해당하는 멤버가 존재하지 않습니다."); + } + } + + @Nested + @DisplayName("템플릿을 소유한 멤버 조회") + class getByTemplateId { + @Test + @DisplayName("템플릿을 소유한 멤버 조회 성공") + void getByTemplateId() { + Member member = memberRepository.save(MemberFixture.memberFixture()); + Category category = categoryRepository.save(CategoryFixture.getFirstCategory()); + Template template = templateRepository.save(TemplateFixture.get(member, category)); + + Member actual = memberService.getByTemplateId(template.getId()); + + assertThat(actual).isEqualTo(member); + } + + @Test + @DisplayName("템플릿을 소유한 멤버 조회 실패 : DB에 없는 템플릿인 경우") + void getByTemplateId_Fail() { + assertThatCode(() -> memberService.getByTemplateId(100L)) + .isInstanceOf(CodeZapException.class) + .hasMessage("템플릿에 대한 멤버가 존재하지 않습니다."); + } + } + + @Nested + @DisplayName("아이디로 멤버 조회") + class getById { + @Test + @DisplayName("아이디로 멤버 조회 성공") + void getById() { + Member member = memberRepository.save(MemberFixture.memberFixture()); + + Member actual = memberService.getById(member.getId()); + + assertThat(actual).isEqualTo(member); + } + + @Test + @DisplayName("아이디로 멤버 조회 실패 : ") + void getById_Fail() { + Long notExitsId = 100L; + + assertThatCode(() -> memberService.getById(notExitsId)) + .isInstanceOf(CodeZapException.class) + .hasMessage("식별자 " + notExitsId + "에 해당하는 멤버가 존재하지 않습니다."); + } } } From fc5c0e3aaa742a769d4c95ff4ce091bfe1019d15 Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Sun, 15 Sep 2024 16:05:01 +0900 Subject: [PATCH 2/9] =?UTF-8?q?test:=20test=20=EC=97=90=EC=84=9C=20cors=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/codezap/global/cors/CorsPropertiesTest.java | 2 +- backend/src/test/resources/application-local.yml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java b/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java index 05293c36d..555a5917b 100644 --- a/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java +++ b/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java @@ -29,6 +29,6 @@ void getAllowedOrigins() { @Test @DisplayName("yml 파일로부터 allowed-origins-patterns 값을 가져오는지 확인") void getAllowedOriginsPatterns() { - assertThat(corsProperties.getAllowedOriginsPatterns()).isEqualTo(new String[]{""}); + assertThat(corsProperties.getAllowedOriginsPatterns()).isEqualTo(new String[]{"*"}); } } diff --git a/backend/src/test/resources/application-local.yml b/backend/src/test/resources/application-local.yml index e74358d99..7d0640eca 100644 --- a/backend/src/test/resources/application-local.yml +++ b/backend/src/test/resources/application-local.yml @@ -3,4 +3,6 @@ spring: ansi: enabled: always cors: - allowed-origins: http://localhost:3000 + allowed-origins: + - http://localhost:3000 + allowed-origins-patterns: http://* From 64bd210c1ab2d8a9da9ca578db4da91e5d3050a6 Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Sun, 15 Sep 2024 16:24:49 +0900 Subject: [PATCH 3/9] =?UTF-8?q?test:=20@AutoConfigureTestDatabase=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/codezap/global/cors/CorsPropertiesTest.java | 9 +-------- .../codezap/global/repository/JpaRepositoryTest.java | 1 - .../java/codezap/member/service/MemberServiceTest.java | 6 +++++- backend/src/test/resources/application-local.yml | 4 +--- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java b/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java index 555a5917b..6311b4936 100644 --- a/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java +++ b/backend/src/test/java/codezap/global/cors/CorsPropertiesTest.java @@ -1,18 +1,11 @@ package codezap.global.cors; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.test.context.ConfigDataApplicationContextInitializer; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit.jupiter.SpringExtension; @SpringBootTest class CorsPropertiesTest { @@ -29,6 +22,6 @@ void getAllowedOrigins() { @Test @DisplayName("yml 파일로부터 allowed-origins-patterns 값을 가져오는지 확인") void getAllowedOriginsPatterns() { - assertThat(corsProperties.getAllowedOriginsPatterns()).isEqualTo(new String[]{"*"}); + assertThat(corsProperties.getAllowedOriginsPatterns()).isEqualTo(new String[]{""}); } } diff --git a/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java b/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java index 5aa437eda..ae0a82880 100644 --- a/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java +++ b/backend/src/test/java/codezap/global/repository/JpaRepositoryTest.java @@ -8,7 +8,6 @@ import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; import codezap.global.DatabaseIsolation; import codezap.global.auditing.JpaAuditingConfiguration; diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index 55deb4b33..cc874d1fc 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -10,9 +10,12 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.MethodMode; import codezap.category.domain.Category; import codezap.category.repository.CategoryRepository; @@ -32,6 +35,7 @@ @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DatabaseIsolation +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class MemberServiceTest { @Autowired @@ -184,7 +188,7 @@ void getById() { } @Test - @DisplayName("아이디로 멤버 조회 실패 : ") + @DisplayName("아이디로 멤버 조회 실패 : 존재하지 않는 아이디") void getById_Fail() { Long notExitsId = 100L; diff --git a/backend/src/test/resources/application-local.yml b/backend/src/test/resources/application-local.yml index 7d0640eca..e74358d99 100644 --- a/backend/src/test/resources/application-local.yml +++ b/backend/src/test/resources/application-local.yml @@ -3,6 +3,4 @@ spring: ansi: enabled: always cors: - allowed-origins: - - http://localhost:3000 - allowed-origins-patterns: http://* + allowed-origins: http://localhost:3000 From 4b5f70921b703b10156e8a65aa0e6859bd89907e Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:56:52 +0900 Subject: [PATCH 4/9] =?UTF-8?q?test:=20=EA=B0=80=EB=8F=85=EC=84=B1?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=9C=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20SpringBootTest=20Mock=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/service/MemberServiceTest.java | 25 +++++-------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index cc874d1fc..0f7f59e6e 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -5,17 +5,11 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertAll; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.web.server.LocalServerPort; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.DirtiesContext.MethodMode; import codezap.category.domain.Category; import codezap.category.repository.CategoryRepository; @@ -31,11 +25,9 @@ import codezap.member.repository.MemberRepository; import codezap.template.domain.Template; import codezap.template.repository.TemplateRepository; -import io.restassured.RestAssured; -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) +@SpringBootTest @DatabaseIsolation -@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class MemberServiceTest { @Autowired @@ -50,14 +42,6 @@ class MemberServiceTest { @Autowired private MemberService memberService; - @LocalServerPort - int port; - - @BeforeEach - void setUp() { - RestAssured.port = port; - } - @Nested @DisplayName("회원가입 테스트") class SignupTest { @@ -68,9 +52,12 @@ void signup() { Member member = MemberFixture.memberFixture(); SignupRequest signupRequest = new SignupRequest(member.getName(), member.getPassword()); + Long savedId = memberService.signup(signupRequest); + + boolean isDefaultCategory = categoryRepository.existsByNameAndMember("카테고리 없음", member); assertAll( - () -> assertThat(memberService.signup(signupRequest)).isEqualTo(member.getId()), - () -> assertThat(categoryRepository.existsByNameAndMember("카테고리 없음", member)).isTrue() + () -> assertThat(savedId).isEqualTo(member.getId()), + () -> assertThat(isDefaultCategory).isTrue() ); } From 7efa1aa953fadaee6e71c0c51e0110a3b4dfb3c6 Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Mon, 16 Sep 2024 23:58:07 +0900 Subject: [PATCH 5/9] =?UTF-8?q?test:=20Nested=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EC=B2=AB=20=EA=B8=80=EC=9E=90=20=EB=8C=80=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codezap/member/service/MemberServiceTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index 0f7f59e6e..8eb74bf0d 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -75,11 +75,11 @@ void signup_fail_name_duplicate() { @Nested @DisplayName("아이디 중복 검사 테스트") - class AssertUniquename { + class AssertUniqueName { @Test @DisplayName("아이디 중복 검사 통과: 사용가능한 아이디") - void assertUniquename() { + void assertUniqueName() { String name = "code"; assertThatCode(() -> memberService.assertUniqueName(name)) @@ -88,7 +88,7 @@ void assertUniquename() { @Test @DisplayName("아이디 중복 검사 실패: 중복된 아이디") - void assertUniquename_fail_duplicate() { + void assertUniqueName_fail_duplicate() { Member member = memberRepository.save(MemberFixture.memberFixture()); String memberName = member.getName(); @@ -100,7 +100,7 @@ void assertUniquename_fail_duplicate() { @Nested @DisplayName("회원 조회 테스트") - class findMember { + class FindMember { @Test @DisplayName("회원 정보 조회 성공") @@ -139,7 +139,7 @@ void findMember_Throw_Not_Exists() { @Nested @DisplayName("템플릿을 소유한 멤버 조회") - class getByTemplateId { + class GetByTemplateId { @Test @DisplayName("템플릿을 소유한 멤버 조회 성공") void getByTemplateId() { @@ -163,7 +163,7 @@ void getByTemplateId_Fail() { @Nested @DisplayName("아이디로 멤버 조회") - class getById { + class GetById { @Test @DisplayName("아이디로 멤버 조회 성공") void getById() { From ff580068cd9200f45dd39dd2c0e54387dccfcc7b Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Tue, 17 Sep 2024 00:16:12 +0900 Subject: [PATCH 6/9] =?UTF-8?q?test:=20@AutoConfigureTestDatabase=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/codezap/member/service/MemberServiceTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index 8eb74bf0d..c8a9acbf9 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -9,6 +9,7 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.context.SpringBootTest; import codezap.category.domain.Category; @@ -28,6 +29,7 @@ @SpringBootTest @DatabaseIsolation +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class MemberServiceTest { @Autowired From 88b6344f61159f12eb353730cac316a0d9800b8f Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Tue, 17 Sep 2024 00:41:56 +0900 Subject: [PATCH 7/9] =?UTF-8?q?test:=20CI=EB=AC=B8=EC=A0=9C=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=EC=9D=84=20=EC=9C=84=ED=95=B4=20RANDOM=5FPORT=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/codezap/member/service/MemberServiceTest.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index c8a9acbf9..ae02c8f77 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -9,8 +9,8 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import codezap.category.domain.Category; import codezap.category.repository.CategoryRepository; @@ -27,9 +27,8 @@ import codezap.template.domain.Template; import codezap.template.repository.TemplateRepository; -@SpringBootTest +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DatabaseIsolation -@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class MemberServiceTest { @Autowired From f23bf30690fa201d6874a046d34b3baaa374e777 Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Tue, 17 Sep 2024 00:54:25 +0900 Subject: [PATCH 8/9] =?UTF-8?q?test:=20=EB=B3=80=EC=88=98=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/codezap/member/service/MemberServiceTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index ae02c8f77..c45fc1502 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -156,7 +156,9 @@ void getByTemplateId() { @Test @DisplayName("템플릿을 소유한 멤버 조회 실패 : DB에 없는 템플릿인 경우") void getByTemplateId_Fail() { - assertThatCode(() -> memberService.getByTemplateId(100L)) + Long notExistsId = 100L; + + assertThatCode(() -> memberService.getByTemplateId(notExistsId)) .isInstanceOf(CodeZapException.class) .hasMessage("템플릿에 대한 멤버가 존재하지 않습니다."); } From 0565898279451fd5f249c0a344f93398455d884c Mon Sep 17 00:00:00 2001 From: kyum-q <109158497+kyum-q@users.noreply.github.com> Date: Fri, 20 Sep 2024 01:14:59 +0900 Subject: [PATCH 9/9] =?UTF-8?q?test:=20DisplayName=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20=EC=BD=94=EB=93=9C=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/service/MemberServiceTest.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/backend/src/test/java/codezap/member/service/MemberServiceTest.java b/backend/src/test/java/codezap/member/service/MemberServiceTest.java index c45fc1502..734f04901 100644 --- a/backend/src/test/java/codezap/member/service/MemberServiceTest.java +++ b/backend/src/test/java/codezap/member/service/MemberServiceTest.java @@ -10,7 +10,6 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import codezap.category.domain.Category; import codezap.category.repository.CategoryRepository; @@ -27,7 +26,7 @@ import codezap.template.domain.Template; import codezap.template.repository.TemplateRepository; -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) +@SpringBootTest @DatabaseIsolation class MemberServiceTest { @@ -48,17 +47,17 @@ class MemberServiceTest { class SignupTest { @Test - @DisplayName("회원가입 성공") + @DisplayName("회원가입 성공: 멤버 생성 및 기본 카테고리 생성 성공") void signup() { Member member = MemberFixture.memberFixture(); SignupRequest signupRequest = new SignupRequest(member.getName(), member.getPassword()); Long savedId = memberService.signup(signupRequest); - boolean isDefaultCategory = categoryRepository.existsByNameAndMember("카테고리 없음", member); + boolean existsDefaultCategory = categoryRepository.existsByNameAndMember("카테고리 없음", member); assertAll( () -> assertThat(savedId).isEqualTo(member.getId()), - () -> assertThat(isDefaultCategory).isTrue() + () -> assertThat(existsDefaultCategory).isTrue() ); } @@ -88,23 +87,22 @@ void assertUniqueName() { } @Test - @DisplayName("아이디 중복 검사 실패: 중복된 아이디") + @DisplayName("아이디 중복 검사 실패: 아이디 중복") void assertUniqueName_fail_duplicate() { Member member = memberRepository.save(MemberFixture.memberFixture()); - String memberName = member.getName(); - assertThatThrownBy(() -> memberService.assertUniqueName(memberName)) + assertThatThrownBy(() -> memberService.assertUniqueName(member.getName())) .isInstanceOf(CodeZapException.class) .hasMessage("아이디가 이미 존재합니다."); } } @Nested - @DisplayName("회원 조회 테스트") + @DisplayName("회원 ID로 멤버 조회 테스트") class FindMember { @Test - @DisplayName("회원 정보 조회 성공") + @DisplayName("회원 ID로 멤버 조회 성공") void findMember() { Member member = memberRepository.save(MemberFixture.memberFixture()); @@ -114,7 +112,7 @@ void findMember() { } @Test - @DisplayName("회원 정보 조회 실패: 본인 정보가 아닌 경우") + @DisplayName("회원 ID로 멤버 조회 실패: 본인 ID가 아닌 경우") void findMember_Throw() { Member member = memberRepository.save(MemberFixture.memberFixture()); MemberDto memberDto = MemberDto.from(member); @@ -126,7 +124,7 @@ void findMember_Throw() { } @Test - @DisplayName("회원 정보 조회 실패: DB에 없는 멤버인 경우") + @DisplayName("회원 ID로 멤버 조회 실패: DB에 없는 멤버인 경우") void findMember_Throw_Not_Exists() { Member member = MemberFixture.memberFixture(); MemberDto memberDto = MemberDto.from(member); @@ -139,8 +137,9 @@ void findMember_Throw_Not_Exists() { } @Nested - @DisplayName("템플릿을 소유한 멤버 조회") + @DisplayName("템플릿을 소유한 멤버 조회 테스트") class GetByTemplateId { + @Test @DisplayName("템플릿을 소유한 멤버 조회 성공") void getByTemplateId() { @@ -165,7 +164,7 @@ void getByTemplateId_Fail() { } @Nested - @DisplayName("아이디로 멤버 조회") + @DisplayName("아이디로 멤버 조회 테스트") class GetById { @Test @DisplayName("아이디로 멤버 조회 성공")