Comment vous vous moquez d'un service AngularJS lors de tests unitaires avec le jasmin?

Disons que j'ai un service shop qui dépend de deux stateful services schedule et warehouse. Comment puis-je utiliser différentes versions de schedule et warehose en shop pour les tests unitaires?

Voici mon service:

angular.module('myModule').service('shop', function(schedule, warehouse) {
    return {
        canSellSweets : function(numRequiredSweets){
             return schedule.isShopOpen()
                 && (warehouse.numAvailableSweets() > numRequiredSweets);
        }
    }
});

Voici mes se moque:

var mockSchedule = {
    isShopOpen : function() {return true}
}
var mockWarehouse = {
    numAvailableSweets: function(){return 10};
}

Voici mes tests:

expect(shop.canSellSweets(5)).toBe(true);
expect(shop.canSellSweets(20)).toBe(false);
InformationsquelleAutor KevSheedy | 2013-10-09