【发布时间】:2014-06-17 12:44:03
【问题描述】:
我正在使用带有模拟服务的 Jasmine 为我的 Angular 应用程序编写单元测试。但是,我试图兑现的承诺不起作用。
这里是服务:
CreateItemController = $controller('CreateItemController', {
ItemService: {
createItem: function(data) {
console.log('Service running');
var defer = $q.defer();
defer.resolve('1');
return defer.promise;
}
测试:
it('should create an item', function() {
var created = false;
$scope.createItem().then(function(response) {
// This is not being run
console.log("We got through");
created = true;
});
expect(created).toBe(true);
})
最后是实际功能:
$scope.createItem = function() {
var postData = {
name: 'Jeans'
};
return ItemService.createItem(postData).then(function(response) {
// This is not being run
console.log('Promise recieved');
});
}
我做错了什么?
【问题讨论】:
-
$q服务注入正确了吗?
-
是的。
inject(function($rootScope, $controller, $q) {
标签: javascript angularjs unit-testing testing jasmine