如何在包含外部API时测试AngularJS?

时间:2014-07-20 10:42:47

标签: javascript angularjs api soundcloud

我正在使用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;
      }
    };
  };
});

我应该嘲笑这项服务吗?我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用$ provide为您的服务注入模拟。

您可以在这个问题的答案中找到解释: Injecting a mock into an AngularJS service