getTwitterCount方法在业力测试中失败

时间:2015-12-05 09:09:15

标签: javascript angularjs karma-runner

我正在尝试使用karma测试angulaJS的模块。我已经更新了我的项目所需的所有依赖和devdependies但我有一个错误" Chrome社交应该有一个getTwitterCount方法失败" ReferenceError:未定义expect 这是我的文件测试Socialspec.js:

describe('Social', function(){

  var Social;
  var $http;
  var url = "http://grafikart.fr";

  beforeEach(function(){
    angular.mock.module('App')
    angular.mock.inject(function(_Social_, $httpBackend){
      Social = _Social_
      $http = $httpBackend
    })
  })

  afterEach(function(){
    $http.verifyNoOutstandingExpectation();
    $http.verifyNoOutstandingRequest();
  })


  it("Should have a getTwitterCount method", function(){
    expect(Social.getTwitterCount).to.be.a('function')
  })

  it("Should call JSONP", function(){
    $http.expectJSONP(Social.twitterAPI + url).respond(false)
    Social.getTwitterCount(url)
    $http.flush()
  })

  it("Should return count", function(){
    count = 0;
    $http.expectJSONP(Social.twitterAPI + url).respond({count: 2})
    Social.getTwitterCount(url).then(function(c){
      count = c
    })
    $http.flush()
    expect(count).to.be.equal(2)
  })


})

这就是我定义我的angularjs模块和工厂的地方:

var app=angular.module("App",[]);
app.factory('Social',function($http,$q){


  return {
     twitterAPI: 'http://urls.api.twitter.com/1/urls/count.json?callback=angular.callbacks._0&url=',
     getTwitterCount: function(url){
       q = $q.defer()
       $http.jsonp(this.twitterAPI + url)
       .then(function(result){
         q.resolve(result.data.count)
       })
       return q.promise
     }
   }

})

你能帮助我吗?谢谢你

0 个答案:

没有答案