Closed taxol1203 closed 3 years ago
MailSender의 send 메서드가 실행되지 않아서 request가 0으로 나온 것 같아 보입니다.
setMailSender()코드를 삭제해서 UserService의 upgradeLevels에서 sendUpgradeEmail이 호출 되었으나,
mailSender가 주입되지 않아 send 자체가 실행이 안 된게 아닐까 싶습니다..
그러면 assertion에러 전에 NullPointerException이 나올 텐데 이상하네요 :thinking:
upgradeLevel(User user) 메서드가 어디에 호출되나요? 올려주신 코드에서는 호출되는 부분이 안 보여요.
클래스 필터를 사용하여 프록시 자동생성을 시도해 보았습니다.
481 ~ 486p에 따라 코드를 수정하고 테스트를 진행하였는데,
UserServiceTest
가 실패하였습니다.코드 상 실수나 접근이 잘 못되었는지 확인 부탁드립니다.
실패한 테스트는
upgradeLevels
와upgradeAllOrNothing
입니다.upgradeLevels 실패
우선 483p에서
userServiceImpl
의 빈의 아이디를userService
로 바꾸어 주었습니다.이에따라 기존의 UserServiceImpl는 DI를 할 수 없어 제거하였습니다.
이는
UserServiceTest
의upgradeLevels
메서드에서 오류가 나는데,기존의 코드는
와 같습니다.
여기서
userServiceImpl.setMailSender(mockMailSender);
가 오류가 나, 이 코드를 제거하였더니 결과가으로 제대로 동작하질 않습니다.
upgradeAllOrNothing 실패
upgradeAllOrNothing의 코드의
을 통해 실패하였습니다.
아예
this.testUserService.upgradeLevels();
코드가 실패하였다고 생각합니다.전체 코드
applicationContext.xml
UserServiceTest
NameMatchClassMethodPointcut