2011-02-11 1 views
1

나는 조인 테이블이없는 10 개의 테이블과 같은 매우 복잡한 데이터 구조를 가지고 있습니다. 내 응용 프로그램은 대부분의 테이블에서 검색을 수행 할 수 있어야합니다.cakePHP와 Simpletest에서 복잡한 검색을 수행하고 테스트하는 방법

이렇게하려면 검색 필드의 내용을 조건 배열로 바꾸십시오. 키 즉

$conditions = array(
     'Artist' => array(
       'OR' => array(
        'Artist.name LIKE' => '%barl%', 
        'Pseudonym.name LIKE' => '%barl%' 
        ) 
       ), 
     'Content' => array('Content.subject' => 'architecture'), 
     'Editor' => array('Editor.name LIKE' => '%Gal%'), 
     etc.... 
    ) 

이 배열은 검색이 모델에 전달되는 값은 검색 조건이며 모델 이름과 각 모델은 관련 조건 걸린다.

$this->find('all', array('conditions' => $conditions['Artist'])) 

지금까지 그렇게 좋았습니다. 적어도 나는 생각합니다. 이제 모델을 테스트하기 시작했고, 다른 모델 테스트 케이스에서 동일한 어레이를 반복해서 복사하는 것을 발견했습니다.

이 배열을 모든 테스트 케이스에 액세스 할 수있는 방법이 있습니까? 어쩌면 어레이가 최상의 솔루션이 아니며 검색 모델을 만들어야할까요?

제안 사항?

답변

0

배열을 $ commonSearchConditions와 같은 것으로 app_model.php의 속성으로 배치하고 AppModel을 상속해야하는 모델 내부에서 액세스합니다.

정확하게 무엇을하는지에 따라 모든 모델에서 검색이 다른 경우 모든 모델 테스트에서 테스트 케이스가 있습니다. 그렇지 않은 경우 수행하려는 검색 항목 만 테스트하기 위해 테스트 내부에서 작성하는 테스트 모델로 별도의 테스트를 작성하고자 할 수 있습니다. 더 많이 알지 못하면서 말하기가 어렵습니다.