sproutt / eussya-eussya-api

개발자 동기부여 서비스 플랫폼 '으쌰으쌰'
20 stars 1 forks source link

[Feature] OAuth2 회원가입, 로그인 통합하기 #56

Closed jbj616 closed 4 years ago

jbj616 commented 4 years ago

적용 내용

궁금한 내용

application layer 부터는 비즈니스 로직이 담기므로
웬만하면 unit 테스트 하기 편하게 짜는 것이 좋습니다.
value 어노테이션이 붙으면 spring context 를 띄워야하는데
그렇게되면 unit test 가 불가능하므로
api(interface layer) 레이어에서 @value 를 구현해서 파라미터로 던져주면 어떨까요?

이부분의 답을 찾지 못하였습니다 ㅠ

hyukjin-lee commented 4 years ago

테스트는 웬만하면 유닛테스트로 짜려고 하는 것이 좋고, (좋은 테스트의 속성 : FIRST - 빠르다, 고립시킨다, 반복 가능하다, 스스로 검증 가능하다, 적시에 사용한다다) autowired 를 써야한다는 것은 스프링 컨텍스트가 필요하다는 뜻이겠죠 테스트하고 싶은 대상의 로직을 테스트 하기 위해 주입받는 녀석들의 실체는 필요없고 저희가 조작만 하면 됩니다. 그래서 mocking 한 객체를 생성자로 주입하여 테스트할 대상 클래스를 실체화 하는 것이죠.