p.416에서 UserServiceImpl의 upgradeLevels()가 리턴 값이 없는 void이기 때문에 메소드를 실행하고 결과를 받아서 검증하는 것은 불가능하고, DB와 고립된 테스트 방식으로 만들었기 때문에 UserDao같은 목 오브젝트에게 update()요청을 했는지 확인하는 간접적인(?) 방식으로 테스트를 진행해야 한다고 나와 있습니다.
그런데, 테스트에 대해서 잘 몰라서 이런 생각이 드는 건지는 몰라도... 혼자 읽고 생각해봤을 때는 테스트 코드에서 if(canUpgradeLevel(user)) 이 참이라면 결과값을 출력하는 코드를 넣어서 스텁 방식의 테스트를 할 수 있지 않을까? 하는 생각이 들었습니다.
p.416에서 UserServiceImpl의 upgradeLevels()가 리턴 값이 없는 void이기 때문에 메소드를 실행하고 결과를 받아서 검증하는 것은 불가능하고, DB와 고립된 테스트 방식으로 만들었기 때문에 UserDao같은 목 오브젝트에게 update()요청을 했는지 확인하는 간접적인(?) 방식으로 테스트를 진행해야 한다고 나와 있습니다.
그런데, 테스트에 대해서 잘 몰라서 이런 생각이 드는 건지는 몰라도... 혼자 읽고 생각해봤을 때는 테스트 코드에서
if(canUpgradeLevel(user))
이 참이라면 결과값을 출력하는 코드를 넣어서 스텁 방식의 테스트를 할 수 있지 않을까? 하는 생각이 들었습니다.