Karma 개발자가 직접 쓴 Karama 에 대한 소개 <논문>
을 요약한다. TDD(Test Driven Development)에 대한 저자의 확고한 신념을 느낄 수 있었다.
TDD
- TDD는 고품질의 SW를 개발할 수 있는 효과적인 방법
- TDD는 문서화 측면에서도 이득, 테스트 코드는 항상 up-to-date한 (개발) 코드의 사용법을 알려준다(알려줄 수밖에 없다)
- 테스트 가능한 코드(testable code)는 재사용성(reusable)이 더 높다
TDD를 위해서는 두가지 전제 조건이 필요
- Testable Code: 느슨하게 결합된 모듈 구조로 코드를 개발, AngularJS 같은 프레임워크가 해결
- Testing Environment: Karma 같은 테스트 자동화 도구가 해결
Karma는
- JavaScript를 위한 Test Runner
- Jasmine 같은 Test Framework 이 아님. 어떤 Test Framework도 사용 가능(Karma의 장점)
- 웹앱 테스트의 가장 어려운 점은 코드를 테스트하기 위해 에디터를 떠나 브라우저를 실행시켜 결과를 확인해야 하는 워크플로우의 단절 (context switching), Karma는 이를 해결하기 위한 도구
Karma 모듈 구성도 (Figure 4.1: The high level architecture)
왜 클라이언트-서버 구조를 선택했나?
웹앱은 다양한 기기와 다양한 브라우저에서 실행, 디바이스와 브라우저의 편차를 테스트하기 위해 클라이언트를 분리했음
(이상)