2010-01-25 6 views
7

우리는 기능 테스트를 위해 Fitnesse를 사용하려고합니다. 의존성을 조롱해야합니까, 아니면 데이터베이스에 대해 테스트해야합니까?Fitnesse- 검사가 데이터베이스와 대화해야합니까?

두 방법 중 하나의 장점/단점은 무엇입니까?

DB에 대한 테스트의 모든 문제는 거대한 의존성 인 데이터를 설정하는 것입니다. 우리가 조롱하면 진짜 기능 테스트입니까?

감사합니다.

답변

4

"InMemory"및 "데이터베이스"모드의 두 가지 모드로 실행되는 완벽한 기능 테스트를 제공합니다. 테스트를 실행할 구성에 따라 테스트에서 사용하는 리포지토리가 결정됩니다. 여기에는 몇 가지 장점이 있습니다.

1) 개발자가 데이터베이스에 많은 기능을 구축하지 못하게하고 코드에 계속 유지합니다.

2) "메모리가"인 경우 fitnesse 테스트가 매우 빠르게 실행됩니다. 테스트가 매우 빠르게 실패하도록하여 개발 및 민첩성을 높입니다. db 모드로 실행할 때만 시간이 걸립니다.

+0

감사합니다. 완전히 의미가 있습니다. – Naveen

0

나는 데이터베이스에 대해 테스트해야한다고 생각합니다. 왜냐하면 당신이 fitnesse과 기능 테스트를하고 있기 때문에, 당신은 가짜를 사용하고 있기 때문입니다. 데이터베이스와 함께 사용하면 실제 데이터베이스 기능이 잘 작동하는지 알 수 있습니다. 그렇지 않으면 DB에 거대한 데이터가 저장됩니다.

+0

감사합니다. 셋업 데이터의 고통은 어떻습니까? 각각의 모든 테스트 케이스에 대해 그렇게 어려운 것은 아닙니다. 우리는이 부분의 CI를 사용하고자합니다. Healthe에서 데이터를 설정하는 것이 얼마나 쉽고 어렵습니까? – Naveen

3

내가 볼 FitNesse와 함께 할 수있는 테스트의 2 개 종류 (최소) :

  • 테스트 (또는 예) 도메인 로직 또는 동작을 지정하기위한 것. 나는 이것들을 대개 시험 목적에 중요하지 않기 때문에 이 아니고과 같이 데이터베이스 액세스에 사용하는 경향이 있습니다.

  • 회귀 또는 연기 테스트로 사용되는 종단 간 (또는 거의 종단 간) 테스트. 분명히 데이터베이스 기능이 포함되어 있습니다.

DB를 포함하는 이점은 테스트가 실제 프로덕션 시스템을 더 대표하므로 단점은 데이터베이스 상태를 설정하고 관리하는 추가 비용입니다. DB 설정 및 검증을 돕기 위해 설계된 조명기 세트 인 DbFit을 살펴보십시오.

1

나는 NUnit에서 DB와 관련된 통합 테스트를 격리하려고한다. 통합 문제로 인해 fonctional 테스트가 실패해서는 안됩니다. DB보다 단순 싱글 톤을 통해 객체 상태를 전달하는 것이 더 편하다고 생각했습니다.

0

다른 기능 테스트를 시작할 때 DB 관련 항목에 대해 다른 테스트 스위트를 만드는 데보다 많은 확신을 가질 수있었습니다. 비즈니스 규칙, 저장된 procs 및 일부 기본하지만 중요한 테이블과 같은 것들을 검증하여 올바른 위치에 있는지 확인하고 올바른 결과를 렌더링 할 수 있습니다. 예상대로라면 프런트 엔드에 표시되는 기능은 기능 테스트를 수행 할 수있는 견고한 환경이어야합니다.

관련 문제