2012-06-25 5 views
1

나는 codeigniter 프레임 워크를 사용하고 있으며, 내 모델을 테스트하는 데 simpletest 프레임 워크를 사용하고 있습니다.CodeIgniter-Simpletest 단위 테스트 프레임 워크에서 모델을 특정 컨트롤러에 매핑하는 방법은 무엇입니까?

각 모델에는 자체 컨트롤러가 있습니다.

각 모델의 (웹 서비스 응답을 위해) 사용하는 대부분의 URL은 자체 컨트롤러 생성자에 언급되어 있습니다.

각 모델에 대해 simpletest를 실행하면 routes.php에 설정된 기본 컨트롤러에서 모든 URL을 가져옵니다. 예를 들어

: controller1 & 컨트롤러 2 그리고 두 가지 모델이 있습니다 :

고려할 수 있습니다

두 개의 컨트롤러가 모델 1 & 모델 2

controller1이 모델 2에 매핑되는 & 컨트롤러 2를 MODEL1에 매핑되는

routes.php에서 내가 가지고있다

$route['default_controller'] = "controller1"; 

만약 내가 유닛 2를 테스트한다면 모델 2가 컨트롤러 2에 맵핑되어야하지만 은 컨트롤러 1에 매핑됩니다.

각 모델의 기본 컨트롤러를 동적으로 변경하는 방법이 있습니까? 아니면 간단 테스트 프레임 워크에서이를 지정하는 방법이 있습니까?

감사합니다.

답변

0

와우, 너 잃어 버렸어. 컨트롤러 내에서 모델을로드합니다. 모델을 컨트롤러에 매핑한다는 것은 무엇을 의미합니까? 컨트롤러 1에서 $ this-> load-> model ('model1'); 컨트롤러 2에서 모델 2와 동일합니다. 그런 다음 각 컨트롤러는 하나의 모델 만 사용할 수 있습니다.

+0

단어 매핑을 사용하는 것이 유감 스럽습니다. 특정 컨트롤러가 해당 특정 모델 용이므로 단어 매핑을 사용했습니다. 예, 저는 이전에했던 방식대로 모델을로드했습니다. 하지만 여전히 simpletest를 사용할 때 routes.php에 정의 된 기본 컨트롤러에서 URL이 필요합니다. – Santhiya

+0

흠, 여전히 완전히 이해하려고합니다. URL에서 올바른 컨트롤러에 액세스하는 데 문제가있는 것 같습니다. 기본 컨트롤러가 "controller1"이므로 루트 URL이 해당 컨트롤러 (http://www.yourdomain.com/)로 이동한다고 가정합니다. 이제 controller2에서 simpletest를 실행하려고합니다. controller2에 액세스하려고 시도하고있는 URL은 무엇입니까? http://www.yourdomain.com/controller2를 사용할 수 없습니까? – Thom

+0

'url'은 도메인 url을 의미하지 않았습니다. 이들은 xml 형식의 데이터를 가져 오는 데 사용되는 webservice URL입니다. 각 컨트롤러는 자신의 데이터를 가져 오기위한 확실한 URL 집합을 가지고 있습니다. 이제 내 질문이 있습니다. 그리고 시간을 내 주셔서 고마워요. – Santhiya