IT/Unit Test
-
Junit Test 에서 Config 클래스의 Bean 생성하기IT/Unit Test 2021. 5. 11. 23:50
**테스트 코드를 작성하다 보면 본 프로젝트에 있는 Bean 객체들을 직접 사용해야 할 때가 있다. 실제로 프로젝트에서 s3 파일 업로드/다운로드 테스트를 위해 이러한 작업이 필요하여 작성한 테스트를 남긴다. 이중에 몇몇 Configuration 관련 Bean들은 application.yml 과 같은 파일의 설정과 엮여있는데, 이 설정을 그대로 사용하면서 Test 코드에서 Bean을 사용하는 방법을 알아보자. 테스트하려는 상황은 Test 코드에서 실제로 Bean을 사용하여 AWS s3의 presignedURL 을 할당받아 파일을 업로드하고, 그 업로드한 파일을 다운로드받는 일련의 연계된 테스트이다. *src 폴더의 파일 AwsClient.java ( AWS client 클래스 ) AwsConfig.jav..
-
2. Test Double 의 개념IT/Unit Test 2020. 9. 11. 11:14
1. Test double 이란?? - 실제 객체를 대신해서 테스트에 사용하는 모든 방법을 호칭하는 것이다.(영화 촬영의 스턴트 더블에서 유래함) 네트워크 API를 통해 어떤 정보를 받아서 수행하는 로직을 테스트한다고 가정하자. 테스트시 실제 네트워크 API를 그대로 사용하면, 테스팅은 네트워크의 영향을 받을것이고, 항상 같은 조건에서 테스트되어야 한다는 조건을 지키지 못한다. 실제 사용하기 어렵고 모호할 때 대신 해 줄 수 있는 객체를 만들어 테스트 하도록 돕는다. 2. Test Double 의 종류 * dummy - 가장 기본적인 test double 유형, 구현이 포함되지 않고 매개변수 값으로만 필요하며, 실제 동작이 필요 없을 때 사용한다. - 인스턴스화 된 객체가 필요할 때만 사용된다. - 실제..
-
1. 유닛 테스트(Unit Test) 의 기본 개념IT/Unit Test 2020. 9. 10. 18:54
1. 유닛 테스트란?? - 소스코드의 특정 모듈이 의도된 대로 정확히 동작하는지 검증하는 절차, 모든 함수에 대한 테스트케이스를 작성한다. - 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현 되었는지 확인한다. - Unit Test 코드를 먼저 작성하고 그에따라 개발하는 방법 (TDD - Test Driven Development) 기법도 존재한다. - 이상적으로, 각 테스트 케이스는 서로 분리되어야 한다. 2. 유닛 테스트의 필요성 - 전체적인 목적은 버그를 줄이고 코드 퀄리티를 높이기 위해 수행한다. - 프로그램을 작은 단위로 쪼개서 정확하게 동작하는지 검사하고, 이를통해 문제 발생시 어느부분이 잘못되었는지 쉽게 알 수 있다. - 리팩토링을 진행할 때, 후에도 해당 ..