2013-07-15 11 views
0

저는 우리의 백엔드에서 데이터를 검색하는 ExampleService를 호출하는 ExampleModel을 가지고 있습니다. 내 응용 프로그램의 단위 테스트를 작성하는 방법을 알 수 없습니다.Oiltext를 사용하여 로봇 테스트 및 유닛 테스트 및 테스트

ExampleService

public function retrieveMyToDoList(parameters):Promise 
{ 
    var promise:Promise = performRequest({request: "call to backend", parameters: values, session_id: clientModel.sessionID}); 
    promise.addResultProcessor(parseRetrieveToDoListResult); 
    return promise; 
} 

protected function parseRetrieveToDoListResult(data:Object, callback:Function):void 
{ 
    does some JSON parsing into an object 
    callback(null, object containing my retrieved data) 
} 

ExampleModel

public function getMyToDoList():Promise 
{ 
    var promise:Promise = exampleService.retrieveToDoList(parameters); 
    promise.addResultHandler(onGetToDoListResult); 
    promise.addErrorHandler(onGetToDoListError); 
    return promise; 
} 

private function onGetHeadrsByUserResult(promise:Promise):void 
{ 
    // where this event will be listened to by mediators etc 
    dispatchEvent(new ResponseEvent(GOOD_RESULT)); 
} 

private function onGetHeadrsByUserError(promise:Promise):void 
{ 
    dispatchEvent(new ResponseEvent(BAD_RESULT)); 
} 

나는 내 모델을 테스트 할 수 있도록 내 서비스를 조롱 asmock를 사용하려고 해요 그리고 그것은을 처리하는 방법을 아래 그림과 같이 구성된다 결과 객체에서 다양한 결과가 발생하지만 어떻게 콜백을 조롱합니까? 반환 값이 조롱 된 사례를 보았습니다.하지만 제 경우에는 Promise와 콜백을 사용하고 있으며 앞으로 진행하는 방법에 대해 너무 확신하지 못합니다.

누군가가 조언 할 수 있다면. 감사합니다.

답변

1

모의 서비스가 실제 약속을 되 돌리고 약속의 handleResult 전화 방법을 직접 호출 할 수 있습니다.

FYI : 모델에서 서비스에 직접 의존하지 않는 것이 좋습니다. 서비스가 모델을 조작하게하거나 서비스의 결과를 모델을 조작 할 명령으로 전달해야합니다. 모델은 헬퍼 클래스 이외의 다른 것에 의존해서는 안됩니다.

+0

handleResult 실제로 했나요! 그리고 Creynders에 감사드립니다. 나는 그것을 검토 할 것이다. –