0

以下を考えると...

api.checkIn = function (theUserID) {
    var uri;
    uri = 'some/uri/here/' + theUserID;
    return req.get(uri, {
        handleAs: 'json'
    });
};

api.checkIn(userID).then(function (res) {
  _displayMessage("Attendance Saved.");
},
function(error){
  console.log("An error occurred: " + error);
});

「theUserID」をテストしたいと思います。問題がある場合は、リモート リクエストを完全にバイパスし、返された promise オブジェクトにエラー メソッドを起動させます。

また、実際にリモート呼び出しを行わずに、Promise オブジェクトを返しますが、JSON を渡す "success/result" 関数を自動呼び出しすることにより、テスト目的でリモート要求をスタブアウトしたいと思います。

4

1 に答える 1

1

コードから、AMD、dojo 1.7 または 1.8 を使用していると仮定します。これでうまくいくはずです:

api.checkIn = function (theUserID) {
    var promise = new Deferred(); // you'll want to require dojo/Deferred
    if(notValid(theUserID)){ // you'll need to implement your own validity test here
        promise.reject("your error of choice here");
    } else {
        promise.resolve("your response of choice here");
    }
    return promise;
};

dojo/Deferredのドキュメントも確認してください。

于 2013-02-28T10:20:29.860 に答える