inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 핵심 원리 - 기본편

관심사의 분리

24분쯤에 MemberServiceTest에서 질문있습니다.

166

작성자 없음

작성한 질문수 0

0

안녕하세요. 개발자님

24분쯤에 MemberServiceTest에서

MemberService memberService;

@BeforeEach

public void beforeEach() {

}

이런식으로 작성하시는 것을 봤습니다.

근데 저는 한번 연습해볼겸 이걸 하기전에

클래스 시작 부분에 AppConfig appConfig

= new AppConfig();

appConfig.memberService()로 이전의 방식과 같이

만들어보려고 시도했는데, appConfig.이 찍히지 않고

오류가 뜨더라구요. 이유가 뭔지 알 수 있을까요?

oop spring

답변 2

1

OMG

안녕하세요 유진이님.

OrderApp

자바에 클래스에는 총 3가지 구성요소가 존재합니다

class {

필드 영역

생성자 영역

메서드 영역

}

필드 영역에서는 (클래스, 인스턴스)변수를 선언 혹은 초기화 하는 영역으로

class {

int age; 

static String name="홍길동"

List<Member> memebers = new ArrayList<>();

와 같이 값은 동작만이 가능하며 메서드를 통한 값 할당이 불가능합니다.

OrderApp에서의 선언과 호출은 main"함수" 안에서 일어난 일이고 beforeEach 또한 결국 메서드 이기 때문에 메서드 반환 값을 통한 할당이 된 것입니다. 

AppConfig appConfig = new AppConfig();
MemberService memberService = appConfig.memberService();

아래와 같이 위 형식이 아니어도 상관 없습니다.

MemberService memberService;
AppConfig appConfig = new AppConfig();
@BeforeEach
public void beforeEach() {

memberService = appConfig.memberService();
}

0

OMG

안녕하세요 유진이님.

이 부분을 얘기하신게 맞는지요?

class MemberServiceTest {
MemberService memberService;
AppConfig appConfig = new AppConfig();
appConfig.


그럼 이렇게 바꿔보시겠어요??

아래 링크를 참고하시어 "필드의 초기화" 를 학습하시는 걸 추천드립니다.

감사합니다.

https://gbsb.tistory.com/190

0

유진이

제가 여쭤본 것은 orderApp에서는 아래 구문이 되는데,

AppConfig appConfig = new AppConfig();
MemberService memberService = appConfig.memberService();

MemberServiceTest에는 

AppConfig appConfig = new AppConfig();
appConfig.

이후로 작동이 안합니다.

위와 같이 뜹니다. 

방금 appConfig.이 아니라 두줄 자체를 복사해 넣어서 확인해봤는데

AppConfig appConfig = new AppConfig();
MemberService memberService = appConfig.memberService();

에러는 안뜨네요;; 기이합니다. 

즉, orderService에서는 위에 두줄이 가능한데 왜 MemberServiceTest에는 저게 안되는지,

MemberService memberService;

@BeforeEach
public void beforeEach() {
AppConfig appConfig = new AppConfig();
memberService = appConfig.memberService();
}

또 다른 방식인 위와 같이 구현을 한건지 궁금합니다. (beforeEach가 테스트 시행전에 각각

하기 위해 한다는건 알고 있는데 

AppConfig appConfig = new AppConfig();
MemberService memberService = appConfig.memberService();

이형식이 아닌 이유있는지 궁금합니다.

SingletonService가 JVM이 뜰 때 생성되는게 맞나요?

0

15

1

섹션3. 11 회원객체 다이어그램

0

36

1

OCP, DIP과 @Qualifier 어노테이션에 대해서 질문합니다.

0

35

1

코드 자료

0

80

2

구현체가 동적으로 정해질 때, 팩토리 기법을 사용하나요?

0

79

2

MemberService의 인터페이스를 왜 사용하는지 궁금합니다.

0

98

1

롬복 @Setter를 써야 하는 상황이 있는건가요?

0

103

1

빈 등록 메서드의 파라미터가 빈이 아니어도 되나요?

0

88

1

테스트 속도가 나중에 영향이 있을까요?

0

89

1

gradle 설정 안떠서 질문 남깁니다!

0

137

2

build.gradle로 프로젝트를 여는 이유

0

100

1

provider 사용하는 이유

0

97

1

다음 강의 뭘 들어야 할까요

0

139

2

프로토타입 빈, 직접 destroy 호출 안 할 경우

0

69

1

beanB

0

91

2

퀴즈다시풀기

0

75

1

Gradle로 바꿔도 오류가 똑같이 발생하네요 ㅠㅠ

0

102

2

"중복 등록과 충돌" 강의에서 강사님과 다른 에러가 발생합니다.

0

70

3

run 실행했는데 결과창이 이렇게 뜨네요 왜 그런건가요>

0

112

2

도메인의 정의?

0

63

1

ApplicationContext 질문입니다.

0

68

1

@Scope의 proxyMode를 사용할때 단위 테스트 방법

0

97

2

ai api 선정하기 관련 질문

0

133

2

생성자 자동주입 관련해서

0

68

1