2017-12-10 30 views
-1

우리는 소프트웨어 시스템을 개발하도록 배정 받았습니다. 거의 모든 비즈니스 로직이 없지만 간단한 CRUD 작업 (일부 양식에서는 일부 제어)이 부족합니다. 그러나 문제는 데이터 모델이 이미 존재하며 UI 양식과 관련이 없다는 것입니다. 각 양식은 여러 테이블에 매핑되거나 여러 테이블에 여러 열에 매핑된다는 의미입니다.TDD CRUD 응용 프로그램 복잡한 데이터베이스 설계

복잡한 레거시 데이터베이스 디자인이 아닌 비즈니스 로직에 따라 Object (엔터티 또는 DTO) 모델을 디자인해야한다고 생각합니다. 따라서 응용 프로그램은 쉽고 이해하기 쉬우 며 일련의 데이터 액세스 개체 뒤에 모든 복잡성이 있습니다.

이것은 테스트의 가장 중요한 대상인 복잡한 DAO 개체로 이어집니다. 데이터베이스없이 DAO 개체에 대한 테스트를 작성할 수 있습니까? 방법?

+0

간단한 단위 테스트를 사용할 수없는 이유는 무엇입니까? 조롱 된 엔터티 데이터를 제공하고 UI 모델 데이터에 대한 기대치를 설정합니다. 시험을 쓰는 것을 멈추게하는 것은 아무것도 없습니다. –

+0

통합/기능 테스트에서 언급 한 테스트가 아닙니까? –

답변

1

나는 간접적 인 계층이 없다고 생각합니다.

DAO는 DAO가 이러한 쿼리를 성공적으로 수행하는지 확인하기 때문에 실제 데이터 저장소에 대한 통합 테스트를 통해 테스트됩니다.

누락 된 레이어는 이전 모델과 새 모델 간의 변환 레이어가됩니다. 이 계층은 쉽게 단위 테스트가 가능하며 둘 사이를 변환하는 순수 함수 만 포함해야합니다.

이렇게하면 DAO가 간단하고 쉽게 테스트 할 수 있으며 변환 레이어를 훨씬 쉽게 테스트 할 수 있습니다.