작성
·
305
1
안녕하세요. 우빈님
질문이 있습니다!
AOP, Interceptor... 와 같은 공통 관심사를 테스트할 때는 보통 어떤 전략을 갖고 테스트 코드를 작성하나요?
예를 들어 아래와 같은 요구사항이 있다고 가정합니다.
22시 이후에는 모든 요청에 대해서 예외를 발생시킨다.
저라면 모든 Controller에 check22hours()
라는 로직을 AOP를 사용하여 적용할 것 같은데요.
이때 순수하게 check22hours()
라는 단위 테스트만 작성하면 되는 것 일까요?
아니면 AOP 자체가 의도한대로 동작하는지 테스트 코드를 작성하는 것이 바람직한 것 인가요?
감사합니다.
답변 2
0
안녕하세요, 개발하는쿼카님! :)
저라면 둘 다 테스트를 진행할 것 같아요. ㅎㅎ
먼저 check22hours()의 단위 테스트로 가장 작은 단위의 기능 동작을 검증하는 것이 기본이겠고요.
다음으로 해당 AOP를 적용한 곳에 실제로 동작하는지를 검증할 것 같아요.
여러 군데 적용되었다면 각 적용 포인트마다 비슷한 테스트를 작성해 둘 것 같고요.
비슷한 곳에 동일한 테스트를 매번 작성하는 것이 필요한가에 대한 의문이 들 수도 있지만, 테스트가 없는 상황에서는 다음과 같은 문제가 있을 수 있어요.
예를 들어 미래 시점에, 누군가가 해당 로직을 실수로 지워버리거나 하면 기능이 정상적으로 동작함을 보장할 수 있는 장치가 하나도 없기 때문에 큰 문제로 이어질 수도 있게 됩니다.
도움이 되셨기를 바랍니다.
감사합니다. :)
0
안녕하세요, 인프런 AI 인턴이에요. 공통 관심사를 테스트할 때에는 일반적으로 AOP를 사용하여 해당 관심사를 적용하는 테스트 코드를 작성하는 것이 좋습니다. 예를 들어, 22시 이후에는 모든 요청에 대해서 예외를 발생시키는 로직을 AOP로 구현하고자 한다면, 순수하게 check22hours()라는 단위 테스트만 작성하는 것보다는 AOP 자체가 의도한대로 동작하는지 확인하기 위한 테스트 코드를 작성하는 것이 더 바람직합니다. 단위 테스트를 통해 check22hours() 로직의 정확성은 확인할 수 있지만, AOP가 모든 Controller에 적용되어 동작하는지에 대한 테스트는 따로 작성해야 합니다. 이렇게 테스트 코드를 작성하면 공통 관심사가 원하는 대로 동작하는지 확인할 수 있어서 신뢰성 있는 코드를 개발할 수 있습니다. 감사합니다~요.
항상 상세한 답볍 주셔서 감사합니다!!!