這是我的第一個問題。我會盡力做到最好。我在發帖之前搜索了很多如何測試使用Parse SDK的Angular工廠
我正在開發一個依賴於Javascript ParseSDK的angularJS應用程序。 我已經說服自己最近在測試中潛水,所以我是初學者。
我有這個工廠UserFactory
圍繞SDK,所以一切都乾淨,模塊化的角度的方式。即:SDK只用於工廠(不是控制器或指令)。
它是這樣的:
myModule.factory('UserFactory', ['$q', function($q){
var User = Parse.User.extend({
// Instance methods
},{
// static/class methods
// Overrides Parse.User.current() to wrap current User in promise
current: function(){
var deferred = $q.defer();
var currentUser = Parse.User.current();
if(currentUser)
deferred.resolve(currentUser);
else
deferred.reject("No current user");
return deferred.promise;
}
});
return User;
}]);
我的問題:如何測試UserFactory.current()
知道它使用外部服務? 我研究過嘲笑解析SDK,但不知道如何去做,因爲它不是角相關的(即:不能使用httpBackend)。
我目前的測試文件:
describe("Unit: UserFactory", function(){
var UserFactory;
beforeEach(function(){
module("myModule");
inject(function(_UserFactory_){
UserFactory = _UserFactory_;
});
});
it("should return current User", function(){
// What to expect ?
});
});
預先感謝您
我最常做的,在這種情況下,被嘲諷'Parse.User.current()',使它返回我選擇的值,然後在調用後比較這個值,確保它調用了這個方法(與一些間諜一起)。 – GeoffreyB 2014-10-10 15:12:54