Exercism에서 ABAP 연습 문제를 테스트하는 방법을 배워요
각 연습 문제는 하나 이상의 메서드가 있는 ABAP 클래스 하나로 제공돼요. 보통은 입력과 출력 매개변수가 있는 메서드 정의가 주어져요. 연습 문제의 명세에 따라 메서드 구현을 완성하는 것이 과제예요.
테스트하고 싶은 코드가 준비되면 "Run Tests"를 선택해요. 그러면 해당 ABAP 테스트 클래스가 실행되고, 몇 초 후에 결과가 표시돼요. 오류가 있으면 코드로 돌아가서 그에 맞게 수정해요. 모든 테스트를 통과하면 축하해요! 연습 문제를 완료했으니 풀이를 제출할 수 있어요.
내부적으로 ABAP 코드는 이른바 abaplint transpiler를 사용해 컴파일되고 실행돼요. 이것은 아직 비교적 새로운 해결책이에요. 해결할 수 없는 문제가 있으면 GitHub에 이슈를 만들어 주세요.
Exercism 웹사이트에서 ABAP 연습 문제를 실행할 때는 사용할 수 있는 디버거가 없어요. 그래서 테스트가 왜 실패하는지 파악하기 어려울 수 있어요. 하지만 코드에 데이터를 기록하는 영리한 방법이 있어요. (참고: 이 방법은 어떤 ABAP 시스템에서도 작동하지 않아요.)
예시가 있어요. 첫 번째 이미지는 일부 실패한 테스트가 있는 연습 문제 코드를 보여줘요. 실패한 각 테스트는 예상 값과 실제 값을 보여줘요:

디버깅을 더 쉽게 하려면 console=>log() 호출을 하나 또는 여러 개 추가하고, 중간 데이터를 메서드에 전달해요. 줄바꿈(\n)을 사용하면 출력을 구조화하는 데 도움이 돼요. 테스트를 실행하면 테스트 결과에서 콘솔 출력을 볼 수 있어요:

참고: 콘솔 출력은 실패한 테스트에서만 볼 수 있어요. 풀이를 게시할 예정이라면 로그 문을 제거하는 편이 좋아요. 그러면 게시한 버전을 다른 커뮤니티 구성원이 더 읽기 쉬워요.
자신의 시스템에서 연습을 시작하는 가장 쉬운 방법은 abapGit으로 이 저장소를 클론하는 거예요. 그러면 현재 사용할 수 있는 모든 연습 문제의 스텁과 테스트 클래스가 만들어져요.
ABAP Development Tools를 실행하고(구형 시스템이라면 트랜잭션 SE24 또는 SE80), 연습 문제의 클래스와 같은 이름으로 새 ABAP 클래스를 만들어요. Exercism 웹사이트에서 코드를 복사해 붙여넣어 클래스 스텁과 테스트 클래스도 구현해요.
이제 연습 문제의 클래스를 편집하고 풀이를 구현할 수 있어요. 그런 다음 ABAP 단위 테스트를 실행해서 모든 테스트를 통과하는지 확인해요. 완성하고 테스트까지 성공적으로 마쳤다면, 코드를 잘라서 Exercism 웹사이트의 연습 문제 편집기에 붙여넣어요. 거기서도 테스트를 실행해요.
자신의 시스템에서 코딩하고 테스트할 때는 표준 SAP ABAP 컴파일러와 실행 환경이 사용돼요. 테스트가 실패하면 대개 자신의 코드와 관련이 있어요. 다시 한번 살펴봐요.
코드가 단위 테스트를 성공적으로 통과하면, 클래스 구현을 잘라서 Exercism 웹사이트의 연습 문제에 붙여넣고 "Run Tests"를 선택해요. 물론 거기서도 테스트가 통과해야 해요. 그렇지 않으면 위의 문제 해결 섹션을 참고해요.