2009-06-09 4 views
14

JSF 용 실제 단위 테스트 프레임 워크를 찾으려고합니다.JSF 단위 테스트

JSFUnit에 대해 알고 있지만 이것은 나에게 비실용적입니다. 내 프로젝트에 약 10 개의 JAR을 포함시켜야하며, 다른 프로젝트를 실행하기 위해 뛰어 내리는 것만으로도 충분합니다.

나는 웹 애플리케이션을 테스트하는 플랫폼과 클라이언트 유닛을 시뮬레이트해야하기 때문에 어렵다는 것을 알고있다. 그러나 더 좋은 방법이 있습니까?

+1

JSF에서 어떤 프레임 워크를 사용하고 있습니까, 아니면 JSF raw를 사용하고 있습니까? – Drew

+0

AJAX 기능에 richFaces를 사용하고 내 렌더링에 facelet을 사용하고 있습니다. 또한 구현을 위해 JSF RI 1.2를 사용하고 있습니다. 내 응용 프로그램 서버에 glassfish v2를 사용하고 있습니다. –

+1

일부 응답자는 Selenium을 언급합니다. Selenium은 단위 테스트 도구가 아닙니다. 조립 및 배포 된 응용 프로그램을 통합 테스트하는 데 사용됩니다. 단위 테스트는 환경에서 발생한 코드의 개별 부분을 테스트하는 것을 의미합니다. – pcjuzer

답변

9

Selenium 또는 다른 도구를 사용하여 통합 테스트를 수행 한 적이 있습니까? Selenium을 사용하면 브라우저에서 테스트를 직접 기록하고 실행할 수 있습니다. Selenium Remote Control을 사용하여 여러 브라우저 및 여러 플랫폼에서 테스트를 실행할 수도 있습니다.

단위 테스트를 작성하는 것이 좋지만, 프레젠테이션 계층 코드를 단위 테스트하는 것보다는 기능적 통합 테스트를 만드는 데 더 많은 것을 제공 할 수 있습니다.

+0

이것은 매우 흥미로운 대안처럼 보입니다. 나는 그것을 더 깊이 조사 할 것이다. –

3

프로젝트에서 저는 셀렌을 사용하여 작업을 시작했습니다. 우리는 실제로 이러한 셀레늄 테스트를 작성하는 데 많은 시간을 보냈지 만, UI가 많이 변경되어 거의 투자 수익을 거두지 않고 노력을 두 배로 늘리므로 가치가 거의없는 것으로 나타났습니다.

셀렌의 또 다른 문제점은 코드를 배포해야한다는 것입니다. 즉, 단위 테스트 프레임 워크 (예 : maven)에서 제대로 작동하지 않습니다.

관리 콩에 대한 실제 단위 테스트를 작성하는 것이 매우 중요합니다.

+0

통합 테스트로 maven과 함께 셀렌을 사용할 수 있습니다. – IAdapter

2

당신은 JSFUnit에서 제공하는 jsfunitwar Ant 태스크 또는 대안으로 Maven 플러그인을 살펴 보셨나요? 두 파일 모두 테스트 할 .war 파일 생성의 복잡성을 크게 줄여줍니다. 현재 프로젝트에서 JSFUnit을 사용하고 있으며 화이트 박스와 블랙 박스 테스트 기능을 결합하여 매우 강력합니다. JSFUnit은 HtmlUnit을 사용하기 때문에 생성 된 HTML을 매우 쉽고 효과적으로 검사 할 수 있으며 반대로 내부 JSF 백업 빈의 상태를 확인할 수도 있습니다. JSFUnit 테스트를 내 지속적인 통합 프로세스에 통합 할 수 있었으며 그 결과에 매우 만족했습니다.


1

셀레늄은 피상적이 jsfunit이 안쪽입니다. 프로젝트가 단순하지 않은 경우 jsfunit을 사용하는 것이 좋습니다. 팀 구성원은 jsf managedbean 이름 또는 기타를 변경할 수 있기 때문에 jsfunit을 사용하여이를 파악할 수 있습니다.

0

저는 Paul on Selenium과 함께 설치 및 작업이 매우 쉽습니다. 그 수준에서 몇 가지 사용자 정의와 함께 Firefox에서 Selenium IDE를 사용하고 Java JUnit 테스트와 같은 다른 플랫폼으로 내보낼 수 있습니다. selenium-server.jar을 다운로드하고 실행하기가 쉽고 기존 Eclipse Maven POM 드라이버 프로젝트에 selenium-java-client-driver를 추가하십시오. Eclipse에서 동일한 내 보낸 JUnit 테스트를 실행한다. 나는 기본적으로 Selenium IDE가 지원하지 않는 루핑을 위해 자바를 사용하고 싶었다.

프로젝트 구성에 더 많은 시간이 필요한 JSF Unit을 구성했습니다. JSFUnit과 같은 컨테이너 테스트에서 변경된 사항은 WAR 재 구축, 컨테이너 재배포 및 실행 이클립스 또는 브라우저를 통해.따라서 작은 변화를 신속하게 시도하려면 시간이 많이 걸립니다. 물론 JSFUnit을 사용하면 JSFSession의 모든 내부 구조에 액세스 할 수 있으므로 필자가 필요로하는 테스트의 세분성에 달려있다.

누군가 JSFUnit 테스트의 변경 사항을 처리하고 실행하는 더 빠른 방법을 알고 있다면 관심이 있습니다. 확실히 Selenium 테스트는 JUnit 테스트와 비슷하게 느껴집니다.