¿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);