¿Cómo te burlas de un servicio en AngularJS cuando la unidad prueba con jazmín?

Digamos que tengo un servicioshop Eso depende de dos servicios de estado.schedule ywarehouse. ¿Cómo me inyecto diferentes versiones deschedule ywarehose dentroshop para pruebas unitarias?

Aquí está mi servicio:

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

Aquí están mis burlas:

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

Aquí están mis pruebas:

expect(shop.canSellSweets(5)).toBe(true);
expect(shop.canSellSweets(20)).toBe(false);

Respuestas a la pregunta(8)

Su respuesta a la pregunta