我一直在尝试为我的服务编写一些单元测试,这些测试使用AngularFire与Angular网站内的Firebase进行通信.
我是AngularJS的新手,所以我觉得我错过了一些显而易见的东西,但在网上找不到任何好的例子(至少没有说到我有限的知识).
我在MockFirebase https://github.com/katowulf/mockfirebase/tree/master/tutorials上找到了一些有限的文档,并展示了如何模拟数据,所以我这样做了.
有关mockfirebase的更多示例,我查看了角火的单元测试https://github.com/firebase/angularfire/tree/master/tests/unit 但这似乎并没有向我展示正确的方法.
这是我的服务 -
app.service('Subscription', function ($firebase, FIREBASE_URL, $q) {
var ref;
var Subcription = {
ref: function () {
if (!ref) ref = new Firebase(FIREBASE_URL + "/subscriptions");
return ref;
},
validateSubscription: function(userId){
var defer = $q.defer();
$firebase(Subcription.ref().child(userId))
.$asObject()
.$loaded()
.then(function (subscription) {
defer.resolve(subscription.valid === true);
});
return defer.promise;
},
recordSubscription: function(userId){
return Subcription.ref().$set(userId, {valid: true});
}
};
return Subcription;
});
Run Code Online (Sandbox Code Playgroud)
这是spec文件 -
describe('Service: subscription', function () {
// load the service's module
beforeEach(module('clientApp')); …Run Code Online (Sandbox Code Playgroud)