我正在使用SoundCloud JavaScript SDK和AngularJS,并尝试在其上运行Karma测试。我在运行测试时不断收到错误Error: [$injector:modulerr] Failed to instantiate module SoundcloudApp due to: ReferenceError: Can't find variable: SC
。
在AngularJS服务中使用变量SC(由SoundCloud API提供,包括脚本时):
angular.module('SoundcloudApp').provider('SoundCloud', function() {
SC.initialize({
clientId: 'SeES8KzD8c44J9IU8djbVg'
});
this.$get = function($q) {
return {
getUser: function(id) {
// returns user object with a given id
var user = $q.defer();
SC.get('/users/' + id, function (userData, err) {
if (err) {
user.reject(err.message);
} else {
user.resolve(userData);
}
});
return user.promise;
}
};
};
});
我应该嘲笑这项服务吗?我该怎么做?
答案 0 :(得分:0)
您可以使用$ provide为您的服务注入模拟。
您可以在这个问题的答案中找到解释: Injecting a mock into an AngularJS service