2013-02-27 5 views
0

учитывая следующее ...Stubbing додзё просит

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», и если существует проблема обхода удаленного запроса полностью, и есть возвращаемый объект обещание огня это метод ошибок.

Я также хотел бы отключить удаленный запрос для тестирования, вернув объект обещания, но автоматически вызывающий функцию «успех/результат», передавая его JSON, фактически не делая удаленный вызов.

ответ

1

Предполагая, что вы используете код AMD, доджо 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.