这是我的第一个问题。我会尽力做到最好。我在发帖之前搜索了很多如何测试使用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