0

バックエンドからデータを取得する ExampleService を呼び出す ExampleModel があります。アプリケーションの単体テストの書き方がわかりません。以下に示すように構成されています。

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)
}

例モデル

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 とコールバックを使用していて、先に進む方法がよくわかりません。

誰かがアドバイスできるなら。ありがとう!

4

1 に答える 1

1

handleResultモック サービスに実際の promise を返させ、promise のメソッドを直接呼び出すことができます。

参考までに: モデルからサービスに直接依存することはお勧めできません。サービスにモデルを操作させるか、サービスからの結果をモデルを操作するコマンドに渡す必要があります。モデルは、ヘルパー クラス以外のものに依存するべきではありません。

于 2013-07-16T06:19:31.670 に答える