새 프로젝트를 시작하고 있으며 TDD를 사용하여 설계를 추진하기 위해 매우 열심히 노력하고 있습니다. 나는 몇 년 동안 추진해 왔으며 마침내이 프로젝트를 제대로 수행하는 방법을 배우는 동안이 프로젝트를 사용하기 위해 추가 시간을 할애하는 승인을 받았습니다.
기존 시스템에 연결하기위한 새로운 모듈입니다. 현재 모든 데이터 액세스는 웹 서비스를 통해 이루어지며 이는 대부분 데이터베이스 저장 프로 시저에 대한 간단한 래퍼입니다.
하나의 요구 사항은 주어진 상점에 대해이 응용 프로그램에 유효한 것으로 간주되는 모든 구매 주문을 리턴하는 것입니다. 배송 날짜가 상점 개점 날짜로부터 지정된 범위에 해당하는 경우 PO가 유효한 것으로 간주됩니다 (새 상점의 경우).
이제이 논리를 응용 프로그램 코드에 넣을 수는 없습니다. 위의 제약 조건에서이 저장소에 적용 할 수있는 수십 개를 얻기 위해 백만 개의 PO를 다시 가져 오지 않을 것이기 때문입니다.
날짜 범위를 GetValidPOs proc에 전달하고 해당 값을 사용하여 유효한 PO를 반환하도록 할 수 있다고 생각했습니다. 그러나 유효한 PO로 간주되는 사항에 다른 요구 사항을 추가하면 어떻게됩니까?
그리고 이것을 테스트하고 계속 작동하는지 어떻게 확인합니까? 우리는 ORM을 사용하지 않으며 일어날 가능성이 적습니다. 그리고 테스트에서 DB를 호출 할 수 없습니다.
나는 붙어있다.
내 다른 생각은 유효한 데이터를 반환하는 모의 객체와 잘못된 데이터를 반환하는 모의 객체가 있고 잘못된 데이터가 발생하면 로컬 저장소에서 예외가 발생하고 GetValidPOs proc에 의해 잘못된 데이터가 반환되면 예외가 발생하는지 테스트하는 것입니다. 테스트에 사용되는 모형).
이게 말이 되요? 아니면 더 좋은 방법이 있습니까?
업데이트 : EF를 사용할 수 있습니다. 이제는 저장 프로 시저를 계속 사용할 수 있고 여러 데이터베이스에 데이터를 분산시키는 데 어려움을 겪으면서 사용법을 알아 내고 테스트 할 수 있도록해야합니다.