假设我有一个名为shop
的服务,它依赖于两个有状态的服务schedule
和warehouse
。如何在单元测试中将不同版本的schedule
和warehouse
注入到shop
中?
这是我的服务:
angular.module('myModule').service('shop', function(schedule, warehouse) {
return {
canSellSweets : function(numRequiredSweets){
return schedule.isShopOpen()
&& (warehouse.numAvailableSweets() > numRequiredSweets);
}
}
});
以下是我的模拟测试:
var mockSchedule = {
isShopOpen : function() {return true}
}
var mockWarehouse = {
numAvailableSweets: function(){return 10};
}
这是我的测试:
expect(shop.canSellSweets(5)).toBe(true);
expect(shop.canSellSweets(20)).toBe(false);
module
调用周围的函数实际上是不必要的。 - Jelle den Burger