2013-06-25 3 views
0

왜 컨트롤러 사양에서 데이터베이스 호출을 스텁하는 것이 관례입니까? 나는 주로 컨트롤러에서 데이터베이스 호출을 스텁 (stub)하는 것이 왜 좋은지 (또는 왜 안되는지)에 대한 통찰을 찾고있다. 내 생각에 그것은 간단한 쿼리 (즉, id에 의한 찾기) 인 경우 어떤 경우에 스터 빙하는 것입니다.하지만 더 복잡한 쿼리를 사용하면 유용합니다. 또한 컨트롤러에서 복잡한 쿼리를 사용해서는 안되며 그와 같은 논리는 모델에서 수행해야한다는 요지를 주장 할 수 있습니다.스텁 컨트롤러 사양의 이점

당신이 생각하는 것과 당신이 어떻게 이것에 대해 어떻게 느끼는지 알려주세요.

답변

0

스터 빙은 특히 외부 종속성없이 순수한 단위 테스트를 작성하기 위해 통합 지점을 시뮬레이션하는 데 유용합니다. 이것은 유용성이 실제로 쿼리의 복잡성을 기반으로하는 것이지 종속성을 추상화하는 방법이라는 것을 의미합니다.

0

데이터베이스 호출을 별도로 배치하고자합니다. 쿼리가 얼마나 단순하거나 복잡한 지에 관계없이 데이터베이스 함수를 별도의 클래스에 배치합니다.

  1. 세련된 디자인과 중앙 집중식 논리를 제공합니다.
  2. 모든 컨트롤러의 기능을 쉽게 재사용 할 수 있습니다.

기본적으로 저장 프로 시저를 시뮬레이트합니다. 나는 지난과 현재 프로젝트에서 이것을 연습 해왔고 그것에 대해 긍정적 인 피드백을 얻었습니다.

0

DB 호출에 컨트롤러가 없습니다. 프리젠 테이션 계층 (컨트롤러, 뷰, 템플릿 등)은 SQL 데이터베이스, 원격 REST API 또는 일부 마술 텍스트 파일 저장소와 같은 유형의 저장소가 있다는 것을 인식해서는 안됩니다. DB 상호 작용은 별도의 인스턴스 그룹 (data mappers과 유사)에 의해 수행되는 모델 계층에서 발생해야합니다.

기본적으로 MVC가 손상되었습니다.

관련 문제