프로젝트 개요

캑터스는 서버측 자바 코드(서블릿. EJB, 태크 라이브러리, 필터, ...) 들의 단위 테스트를 위한 간단한 테스트 프레임워크입니다.

캑터스는 서버측 코드의 테스트를 작성하는데 드는 비용을 줄이기 위해 만들어 졌으며, JUnit 및 JUnit 을 확장한 것을 사용합니다.

캑터스는 컨터이너 포함(in-container) 전략을 구현하였습니다(동작 방식을 참고하세요).

The Cactus Ecosystem Cactus Framework Eclipse Plugin Browser Integration Maven Plugin StrutsTestCase JUnitEE Runner Jenerator Ant Integration Jetty Integration Servlet Sample Manual Configuration

캑터스는 몇 개의 컴포넌트들로 구성되어있습니다.

  • 캑터스 프레임워크 : 캑터스의 핵심 부분입니다. 캑터스 테스트들을 작성하기 위한 API 제공 엔진입니다.
  • 캑터스 통합 모듈들 : 캑터스를 쉽게 사용할 수 있는 방법을 제공해주는 프론트엔드(front-end) 프로그램들 및 프레임워크들 입니다 (앤트 스크립트, 이클립스 플러그인, 메이븐 플러그인, ...).
  • 캑터스 예제들 : 캑터스 테스트를 작성하는 방법 및 통합 모듈들의 사용 방법을 보여주는 간단한 프로젝트들 입니다.

단위 테스트의 종류

단위 테스팅 프레임워크는 몇가지가 있습니다. 우리는 그것들을 세가지 유형으로 분류 하였습니다.

  1. 유형 1 : 코드 로직 단위 테스팅. 이러한 테스트들을 위한 최선의 선택은 가짜 객체(Mock Objects) 형태의 프레임워크를 사용하는 것입니다.
  2. 유형 2 : 통합 단위 테스팅. 캑터스는 이 범주에 속합니다(이것이 최고인지 아닌지 의 판단은 여러분이 하시는 것입니다 :)). 이 테스트들은 컨테이너(container)와 상호작용을 시험할 것입니다.
  3. 유형 3 : 기능(functional) 단위 테스팅. 이 단위 테스트들은 여러분의 서버코드로 부터 반환된 값을 테스트하는 방식입니다.HttpUnit 이 그 예입니다 ( HttpUnit 은 기능(functional) 단위 테스팅과는 대조적인 전체 유스 케이스(use case) 테스트 - 예를 들면 몇 번의 요청/응답으로 구성되는 로그인 유스 케이스 - 같은 기능 테스팅 또한 수행한다는 것을 주지하십시오 )

이상적으로는 여러분의 코드를 3 개의 다른 프레임워크들로 테스트를 해야 합니다. 그 후에 여러분은 인수 테스팅 및 시스템 통합 테스팅등을 고려해야 합니다.

캑터스는 유형 2 에 맞춰 개발되었습니다만, 여러개보다 단일 프레임워크로 테스트들을 작성하는게 훨씬 쉽다는 것을 생각해 보면 유형 1 과 3 을 적절히 대체할 수 있습니다. 더욱이, 여러분의 코드에 모든 형태의 테스트 한다는 것은 어려운 일입니다. 우리는 캑터스가 여러분의 코드가 배치(deployed)되면 바로 돌아갈 수 있도록 높은 신뢰성을 제공하는 중간 기반을 제공 하리라 믿습니다. 하지만, 그것은 여러분의 선택이고, 만약 여러분이 원한다면 캑터스를 유형 2 로만 사용할 수 있습니다.

시작하기

이제 시작하는 것이라면, 새내기 안내 를 읽으십시오.