我正在尝试使用apiSearch.get().then(func(){...})
我在测试中使用它,但是当我在控制器中使用相同的方法时,我无法获取数据。是否可以将.then()与返回的资源一起使用?如果没有,我可以使用另一种解决方案替代我的控制器或测试代码吗?
service.js
angular.module('app').factory('apiSearch', ['$resource', '$log',
function ($resource, $log) {
return $resource('api/search/:value', {}, {
get: {
method: 'GET',
isArray: false,
cache: true
}
});
}
])
pageService.js
/*** this works when I test it in the browser but makes my test fail ***/
apiSearch.get({value: 'thisvalue'}, function (res) {
$state.go('storefront.home');
}, function (err) {
$state.go('not-found');
})
/*** this works for my test but fails in the browser ***/
apiSearch.get({value: 'thisvalue'}).then(function (res) {
$state.go('storefront.home');
}, function (err) {
$state.go('not-found');
})
test.js
it("Should ", function(){
resolveData = 'itemName'
deferred.resolve(resolveData);
spyOn(apiSearch, "get").and.returnValue(deferred.promise)
$scope.$digest();
expect($state.current.name).toEqual('storefront.home');
});